From owner-freebsd-hackers Mon Sep 17 14:56: 2 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from InterJet.elischer.org (c421509-a.pinol1.sfba.home.com [24.7.86.9]) by hub.freebsd.org (Postfix) with ESMTP id C394F37B40E for ; Mon, 17 Sep 2001 14:55:58 -0700 (PDT) Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id PAA17630; Mon, 17 Sep 2001 15:31:59 -0700 (PDT) Date: Mon, 17 Sep 2001 15:31:58 -0700 (PDT) From: Julian Elischer To: Matt Dillon Cc: hackers@FreeBSD.org Subject: Re: bug in sshd - signal during free() In-Reply-To: <200109172032.f8HKW6M41638@earth.backplane.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG signale interrupying 'free' is ok.. Free is not 'signal-safe' so no malloc/free can be done in a signal.. set the malloc config that catches recursive frees&malocs. On Mon, 17 Sep 2001, Matt Dillon wrote: > sshd died on one of our machines today. The traceback seems to > indicate that a signal is interrupting a free(). I'm going to > play with the code a bit to see if there's an easy fix. > > This bug can't occur very often... the key regeneration signal > has to occur *just* as sshd is trying to free() something. > > -Matt > > (gdb) back > #0 0x28231e34 in kill () from /usr/lib/libc.so.4 > #1 0x2826dd8a in abort () from /usr/lib/libc.so.4 > #2 0x2826c899 in isatty () from /usr/lib/libc.so.4 > #3 0x2826c8cf in isatty () from /usr/lib/libc.so.4 > #4 0x2826d907 in malloc () from /usr/lib/libc.so.4 > #5 0x2826be58 in __smakebuf () from /usr/lib/libc.so.4 > #6 0x2826bdec in __swsetup () from /usr/lib/libc.so.4 > #7 0x282663ef in vfprintf () from /usr/lib/libc.so.4 > #8 0x28266059 in fprintf () from /usr/lib/libc.so.4 > #9 0x2824e0ed in vsyslog () from /usr/lib/libc.so.4 > #10 0x2824e009 in syslog () from /usr/lib/libc.so.4 > #11 0x804feb3 in do_log () > #12 0x806ade3 in log () > #13 0x804c742 in key_regeneration_alarm () > #14 0xbfbfffac in ?? () > #15 0x2826da35 in free () from /usr/lib/libc.so.4 > #16 0x805f087 in xfree () > #17 0x804d8be in main () > #18 0x804c50d in _start () > (gdb) > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message