diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2023-06-29 07:55:12 +0000 |
---|---|---|
committer | Laurent Bercot <ska@appnovation.com> | 2023-06-29 07:55:12 +0000 |
commit | 109417b5defcd6d13c54b213c4f06272fcf0dc19 (patch) | |
tree | 2d6085bfeb560bd3c13386974a7b65ed8693c926 /src | |
parent | 28e09b5eb76919122f8baf57899154b3dd5fdaa0 (diff) | |
download | skalibs-109417b5defcd6d13c54b213c4f06272fcf0dc19.tar.xz |
posix_spawn workaround fixes
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libstddjb/child_spawn_workaround.c | 2 | ||||
-rw-r--r-- | src/sysdeps/tryposixspawnearlyreturn.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/libstddjb/child_spawn_workaround.c b/src/libstddjb/child_spawn_workaround.c index 00f8553..516ade5 100644 --- a/src/libstddjb/child_spawn_workaround.c +++ b/src/libstddjb/child_spawn_workaround.c @@ -25,7 +25,7 @@ pid_t child_spawn_workaround (pid_t pid, int const *p) if (r == -1) return 0 ; if (r) return (errno = EILSEQ, 0) ; /* child wrote, wtf */ - do e = waitid(P_PID, pid, &si, WNOHANG | WNOWAIT) ; + do e = waitid(P_PID, pid, &si, WEXITED | WNOHANG | WNOWAIT) ; while (e == -1 && errno == EINTR) ; if (e == -1) return pid ; /* we're in trouble, but don't leak a child */ if (!si.si_pid) return pid ; /* child is running */ diff --git a/src/sysdeps/tryposixspawnearlyreturn.c b/src/sysdeps/tryposixspawnearlyreturn.c index 347f2be..b6f5179 100644 --- a/src/sysdeps/tryposixspawnearlyreturn.c +++ b/src/sysdeps/tryposixspawnearlyreturn.c @@ -19,6 +19,6 @@ int main (void) e = posix_spawnattr_setflags(&attr, 0) ; if (e) return 111 ; if (close(fd) == -1 || unlink(tmp) == -1) return 111 ; - e = posix_spawn(0, argv[0], 0, &attrp, argv, &env) ; + e = posix_spawn(0, argv[0], 0, &attr, argv, &env) ; return e ? e == ENOENT ? 1 : 111 : 0 ; } |