| From: David Korn | To: werner@suse.de | Subject: Re: Re: [ast-users] Crash with SIGPIPE trap... | | OK, now I get what is causing this. Here is a simpler fix | that I think should work. If the stream is in a pool, then | this just purges the top level so that it doesn't write to | that level. | --- src/cmd/ksh93/sh/fault.c +++ src/cmd/ksh93/sh/fault.c 2009-08-24 15:52:21.770401660 +0200 @@ -413,6 +413,9 @@ void sh_chktrap(void) sh.sigflag[sig] &= ~SH_SIGTRAP; if(trap=sh.st.trapcom[sig]) { + Sfio_t *fp; + if (sig==SIGPIPE && (fp=sfpool((Sfio_t*)0,sh.outpool,SF_WRITE))) + sfpurge(fp); sh.oldexit = SH_EXITSIG|sig; sh_trap(trap,0); }