Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: "Dave Korn" To: Subject: RE: autossh crash with 20050314 and earlier cygwin1.dll Date: Wed, 16 Mar 2005 18:06:20 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit In-Reply-To: Message-ID: X-OriginalArrivalTime: 16 Mar 2005 18:06:35.0291 (UTC) FILETIME=[E41FEEB0:01C52A52] ----Original Message---- >From: Andrew Schulman >Sent: 16 March 2005 17:08 > Would the job be easier in my case, where I have a repeatable crash? I > provided strace output in the earlier thread about my autossh problems, > but haven't tried using any debug builds of cygwin1.dll. I'm not > conversant with debuggers, but I have used gdb before and could work my > way through it. Let me know if this would be useful, and how best to go > about it. Thanks, it's good of you to offer, but as you may have seen, cgf's already put his finger on it: the code in autossh calls free (...) on a pointer that it didn't get from one of the *alloc (...)-family functions. That's the problem (undefined behaviour) and his fix is the correct solution. GOK why it works on glibc-based systems, but I guess it must, or the problem would surely have cropped up before. Hmmmmm...... dk AT mace /gnu/glibc-2.3.4/resolv> cat -n gethnamaddr.c [........snip!........] 103 104 static struct hostent host; 105 static char *host_aliases[MAXALIASES]; 106 static char hostbuf[8*1024]; [........snip!........] Well, it also uses a static buffer. Guess glibc free (...) must be more robust in the presence of garbage input than newlib free (...), although that's odd, since they're both based on dl-malloc under the hood. cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/