summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2002-01-14 16:50:19 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2002-01-14 16:50:19 +0000
commit3030ff50b6ca0c287da0c235f239f086b505e9a6 (patch)
treeb70e40b5a718f901a3b5e2494c99063ff03a6c4f /lib/libc
parentac4acecf7a6743a813c81fc53dbb940c6f1615a8 (diff)
If waitpid() return ECHILD that should not be a fatal error since
someone else could have waited for the process or zombies could be disabled via SIG_IGN or SA_NOCLDWAIT.
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/gen/auth_subr.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/libc/gen/auth_subr.c b/lib/libc/gen/auth_subr.c
index bfce363263a..0e29e4c79b4 100644
--- a/lib/libc/gen/auth_subr.c
+++ b/lib/libc/gen/auth_subr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: auth_subr.c,v 1.6 2001/07/02 19:22:34 millert Exp $ */
+/* $OpenBSD: auth_subr.c,v 1.7 2002/01/14 16:50:18 millert Exp $ */
/*-
* Copyright (c) 1995,1996,1997 Berkeley Software Design, Inc.
@@ -833,12 +833,12 @@ auth_call(auth_session_t *as, char *path, ...)
_auth_spool(as, pfd[0]);
close(pfd[0]);
if (waitpid(pid, &status, 0) < 0) {
- syslog(LOG_ERR, "%s: waitpid: %m", path);
- _warnx("internal failure");
- goto fail;
- }
-
- if (!WIFEXITED(status))
+ if (errno != ECHILD) {
+ syslog(LOG_ERR, "%s: waitpid: %m", path);
+ _warnx("internal failure");
+ goto fail;
+ }
+ } else if (!WIFEXITED(status))
goto fail;
}