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