bin/52746
David Malone
dwmalone at maths.tcd.ie
Sun Jul 13 01:40:26 PDT 2003
The following reply was made to PR bin/52746; it has been noted by GNATS.
From: David Malone <dwmalone at maths.tcd.ie>
To: Kris Kennaway <kris at obsecurity.org>
Cc: freebsd-gnats-submit at FreeBSD.org, marka at isc.org,
dwmalone at FreeBSD.org
Subject: Re: bin/52746
Date: Sun, 13 Jul 2003 09:34:39 +0100
> David, can you forward your analysis to the tcsh maintainer, Christos
> Zoulas <christos at zoulas.com>? I have tried to email him recently
> about this myself, but he bounces my emails.
I got a patch from Christos, but while testing I found that it
caused problems with running subcommands in vim. I haven't had time
to investigate further. I've let Christos know about that too.
I've included the patch below, in case anyone wants to do more
testing or debugging of it.
We could probably work around the problem by disabling the use of
vfork under FreeBSD.
David.
Index: sh.proc.c
===================================================================
RCS file: /src/pub/tcsh/sh.proc.c,v
retrieving revision 3.79
diff -u -u -r3.79 sh.proc.c
--- sh.proc.c 26 May 2003 07:11:07 -0000 3.79
+++ sh.proc.c 3 Jun 2003 13:10:48 -0000
@@ -602,8 +602,15 @@
while ((fp = (fp->p_friends)) != pp);
if ((jobflags & PRUNNING) == 0)
break;
+ if (kill(-fp->p_procid, 0) == -1 && errno == ESRCH) {
#ifdef JOBDEBUG
- xprintf("%d starting to sigpause for SIGCHLD on %d\n",
+ xprintf("%d child %d already exited\n",
+ getpid(), fp->p_procid);
+#endif /* JOBDEBUG */
+ break;
+ }
+#ifdef JOBDEBUG
+ xprintf("%d starting to sigpause for SIGCHLD on %d\n",
getpid(), fp->p_procid);
#endif /* JOBDEBUG */
#ifdef BSDSIGS
More information about the freebsd-bugs
mailing list