Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Tue, 9 Oct 2001 14:20:05 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: Perl 5.7.2 Message-ID: <20011009142005.D25375@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <3BC30401 DOT 2D09A965 AT rowman DOT com> <3BC341F5 DOT 12093 DOT C1DD7 AT localhost> <20011009125532 DOT A24952 AT redhat DOT com> <3BC333FF DOT 23E05C83 AT rowman DOT com> <8122066680 DOT 20011009214203 AT logos-m DOT ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8122066680.20011009214203@logos-m.ru> User-Agent: Mutt/1.3.21i On Tue, Oct 09, 2001 at 09:42:03PM +0400, egor duda wrote: >Hi! > >Tuesday, 09 October, 2001 John Peacock jpeacock AT rowman DOT com wrote: > >>> I suspect that there might be some problem with a misconfigured perl, >>> maybe? I know that perl can use its own version of malloc. I wonder >>> if some memory that is allocated by perl's malloc has been passed to >>> cygwin's malloc for freeing. If so, then *boom*. > >JP> That is a distinct possibility. I could see that Perl_safesysfree was >JP> being called, but all of those things should have been created with >JP> Perl_safemalloc. These are both wrappers around the system malloc() >JP> and free() so it is an avenue of investigation at least. I'll look at >JP> the wrapper code and see if there is anything that has changed recently. > >JP> But, would this mean that if miniperl is being run under gdb, there >JP> would be no core dump? Because that is the behavior I am seeing >JP> (once I downgraded to CygWin 1.3.2-2). > >free() does not necessarily crash on wrong pointer. whether it crashes >or not depends heavily on heap layout, which certainly changes between >different dll versions. Right. It is *possible* to pass an invalid pointer to free() and not get a core dump. You'll probably end up corrupting the heap, though, regardless. So, subsequent heap operations could be fouled up. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/