svn commit: r236985 - stable/8/usr.bin/mail

Eitan Adler eadler at FreeBSD.org
Wed Jun 13 03:41:23 UTC 2012


Author: eadler
Date: Wed Jun 13 03:41:22 2012
New Revision: 236985
URL: http://svn.freebsd.org/changeset/base/236985

Log:
  MFC r236286:
  	Fix likely race condition if wait_child() is interrupted by sigchild()
  
  PR:		bin/102834
  Approved by:	cperciva (implicit)

Modified:
  stable/8/usr.bin/mail/popen.c
Directory Properties:
  stable/8/usr.bin/mail/   (props changed)

Modified: stable/8/usr.bin/mail/popen.c
==============================================================================
--- stable/8/usr.bin/mail/popen.c	Wed Jun 13 03:40:59 2012	(r236984)
+++ stable/8/usr.bin/mail/popen.c	Wed Jun 13 03:41:22 2012	(r236985)
@@ -364,12 +364,14 @@ wait_child(pid)
 	int pid;
 {
 	sigset_t nset, oset;
-	struct child *cp = findchild(pid);
+	struct child *cp;
 
 	(void)sigemptyset(&nset);
 	(void)sigaddset(&nset, SIGCHLD);
 	(void)sigprocmask(SIG_BLOCK, &nset, &oset);	
 
+	cp = findchild(pid);
+
 	while (!cp->done)
 		(void)sigsuspend(&oset);
 	wait_status = cp->status;


More information about the svn-src-all mailing list