From owner-freebsd-current@FreeBSD.ORG Thu Jan 24 13:51:56 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 AFA0E16A41A; Thu, 24 Jan 2008 13:51:56 +0000 (UTC) (envelope-from keramida@freebsd.org) Received: from mx-out-05.forthnet.gr (mx-out.forthnet.gr [193.92.150.104]) by mx1.freebsd.org (Postfix) with ESMTP id 2B29413C442; Thu, 24 Jan 2008 13:51:55 +0000 (UTC) (envelope-from keramida@freebsd.org) Received: from mx-av-03.forthnet.gr (mx-av.forthnet.gr [193.92.150.27]) by mx-out-05.forthnet.gr (8.13.8/8.13.8) with ESMTP id m0ODbGT2013245; Thu, 24 Jan 2008 15:37:16 +0200 Received: from MX-IN-04.forthnet.gr (mx-in-04.forthnet.gr [193.92.150.163]) by mx-av-03.forthnet.gr (8.14.1/8.14.1) with ESMTP id m0ODbGId025893; Thu, 24 Jan 2008 15:37:16 +0200 Received: from kobe.laptop (ppp133-151.adsl.forthnet.gr [62.1.124.151]) by MX-IN-04.forthnet.gr (8.14.2/8.14.2) with ESMTP id m0ODbAGd030953; Thu, 24 Jan 2008 15:37:12 +0200 Authentication-Results: MX-IN-04.forthnet.gr smtp.mail=keramida@freebsd.org; spf=permerror Authentication-Results: MX-IN-04.forthnet.gr header.from=keramida@freebsd.org; sender-id=permerror Received: from kobe.laptop (kobe.laptop [127.0.0.1]) by kobe.laptop (8.14.2/8.14.2) with ESMTP id m0ODbA4g002266; Thu, 24 Jan 2008 15:37:10 +0200 (EET) (envelope-from keramida@freebsd.org) Received: (from keramida@localhost) by kobe.laptop (8.14.2/8.14.2/Submit) id m0ODb98P002265; Thu, 24 Jan 2008 15:37:09 +0200 (EET) (envelope-from keramida@freebsd.org) Date: Thu, 24 Jan 2008 15:37:09 +0200 From: Giorgos Keramidas To: Christos Zoulas , Mark Peek , tcsh-bugs@mx.gw.com, current@freebsd.org Message-ID: <20080124133708.GA2220@kobe.laptop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Cc: Subject: `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 13:51:56 -0000 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 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; } %%%