From owner-freebsd-current@FreeBSD.ORG Thu Jan 24 20:35:40 2008 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2AAA416A417; Thu, 24 Jan 2008 20:35:40 +0000 (UTC) (envelope-from christos@zoulas.com) Received: from rebar.astron.com (rebar.astron.com [38.117.134.202]) by mx1.freebsd.org (Postfix) with ESMTP id 0623113C465; Thu, 24 Jan 2008 20:35:39 +0000 (UTC) (envelope-from christos@zoulas.com) Received: by rebar.astron.com (Postfix, from userid 10080) id 2611E56544; Thu, 24 Jan 2008 15:17:31 -0500 (EST) From: christos@zoulas.com (Christos Zoulas) Date: Thu, 24 Jan 2008 15:17:31 -0500 In-Reply-To: <20080124133708.GA2220@kobe.laptop> from Giorgos Keramidas (Jan 24, 3:37pm) Organization: Astron Software X-Mailer: Mail User's Shell (7.2.6 beta(4.pl1)+dynamic 20000103) To: Giorgos Keramidas , Mark Peek , tcsh-bugs@mx.gw.com, current@freebsd.org Message-Id: <20080124201731.2611E56544@rebar.astron.com> X-Mailman-Approved-At: Thu, 24 Jan 2008 20:43:02 +0000 Cc: Subject: Re: `set autologout = (15 1)' aborts X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jan 2008 20:35:40 -0000 On Jan 24, 3:37pm, keramida@freebsd.org (Giorgos Keramidas) wrote: -- Subject: `set autologout = (15 1)' aborts | Hi Christos, Mark and everyone, | | The following is a patch which fixes an abort() in tcsh 6.15.00 on | FreeBSD. The proposed commit log explains why the change is needed, | so if we can get this committed upstream to the tcsh sources, then it | will find its way back to FreeBSD's src/contrib :) | | %%% | tcsh: fix abort in cleanup_until(), caused by internal xgetpass() | | The xgetpass() function pushes a cleanup entry for &osa, but then | attempts to flush the stack until an entry matching &sa. The two | object pointers do not match, so the stack is popped too much, | and then cleanup_until calls abort() when it unexpectedly hits | the bottom of the cleanup stack. | | Reported by: Paul B. Mahol, onemda at gmail.com, | Pietro Cerutti, gahr at gahr.ch thanks! christos | | diff -r 2cc0e20ca15b -r ea3fdd703cbf contrib/tcsh/tc.func.c | --- a/contrib/tcsh/tc.func.c Wed Jan 23 11:47:09 2008 +0000 | +++ b/contrib/tcsh/tc.func.c Thu Jan 24 15:33:31 2008 +0200 | @@ -632,7 +632,7 @@ | } | strbuf_terminate(&pass); | | - cleanup_until(&sa); | + cleanup_until(&osa); | | return pass.s; | } | %%% -- End of excerpt from Giorgos Keramidas