From mark at mcs.vuw.ac.nz Thu Jun 19 04:32:37 2008 From: mark at mcs.vuw.ac.nz (Mark Davies) Date: Thu, 19 Jun 2008 13:32:37 +1200 Subject: Segfault in current tcsh Message-ID: <200806191332.38017.mark@mcs.vuw.ac.nz> On a current(ish) NetBSD/i386 tcsh (from current pkgsrc) can be easily made to seg fault: lap2% ./tcsh lap2% set prompt=%\ % /bin/echo "`" Unmatched `. Segmentation fault lap2% stack backtrace at the time is: #0 0x08089712 in bb_cleanup () #1 0x080522c0 in cleanup_until () #2 0x0804adfc in process () #3 0x0804d020 in main () cheers mark From christos at zoulas.com Thu Jun 19 18:20:30 2008 From: christos at zoulas.com (Christos Zoulas) Date: Thu, 19 Jun 2008 11:20:30 -0400 Subject: Segfault in current tcsh In-Reply-To: <200806191332.38017.mark@mcs.vuw.ac.nz> from Mark Davies (Jun 19, 1:32pm) Message-ID: <20080619152031.097965654E@rebar.astron.com> On Jun 19, 1:32pm, mark at mcs.vuw.ac.nz (Mark Davies) wrote: -- Subject: Segfault in current tcsh | On a current(ish) NetBSD/i386 tcsh (from current pkgsrc) can be easily | made to seg fault: | | lap2% ./tcsh | lap2% set prompt=%\ | % /bin/echo "`" | Unmatched `. | Segmentation fault | lap2% | | stack backtrace at the time is: | | #0 0x08089712 in bb_cleanup () | #1 0x080522c0 in cleanup_until () | #2 0x0804adfc in process () | #3 0x0804d020 in main () | | cheers | mark --- sh.glob.c 31 May 2007 08:26:12 -0000 3.75 +++ sh.glob.c 19 Jun 2008 15:20:13 -0000 @@ -667,6 +667,7 @@ } if (!*rp) { oops: + cleanup_until(&bb); stderror(ERR_UNMATCHED, '`'); } ep = Strnsave(lp, rp - lp); christos From mark at mcs.vuw.ac.nz Fri Jun 20 01:02:05 2008 From: mark at mcs.vuw.ac.nz (Mark Davies) Date: Fri, 20 Jun 2008 10:02:05 +1200 Subject: Segfault in current tcsh In-Reply-To: <20080619152031.097965654E@rebar.astron.com> References: <20080619152031.097965654E@rebar.astron.com> Message-ID: <200806201002.05127.mark@mcs.vuw.ac.nz> On Fri, 20 Jun 2008, Christos Zoulas wrote: > --- sh.glob.c 31 May 2007 08:26:12 -0000 3.75 > +++ sh.glob.c 19 Jun 2008 15:20:13 -0000 > @@ -667,6 +667,7 @@ > } > if (!*rp) { > oops: > + cleanup_until(&bb); > stderror(ERR_UNMATCHED, '`'); > } > ep = Strnsave(lp, rp - lp); > > christos That fixed it. cheers mark