mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-23 13:09:58 +08:00
If the pidfd_spawn/pidfd_spawnp helper process succeeds, but evecve
fails for some reason (either with an invalid/non-existent, memory
allocation, etc.) the resulting pidfd is never closed, nor returned
to caller (so it can call close).
Since the process creation failed, it should be up to posix_spawn to
also, close the file descriptor in this case (similar to what it
does to reap the process).
This patch also changes the waitpid with waitid (P_PIDFD) for pidfd
case, to avoid a possible pid re-use.
Checked on x86_64-linux-gnu.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit
|
||
---|---|---|
.. | ||
alpha | ||
arm | ||
bsd | ||
i386 | ||
inet | ||
mips | ||
powerpc | ||
sh | ||
sysv/linux | ||
x86_64 | ||
confstr.h | ||
get_child_max.c | ||
getlogin_r.c | ||
getlogin.c | ||
getpagesize.c | ||
grantpt.c | ||
ifreq.c | ||
Implies | ||
make-syscalls.sh | ||
Makefile | ||
setxid.h | ||
sockatmark.c | ||
syscall-template.S | ||
syscall.S | ||
syscalls.list | ||
sysdep.h |