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