Adhemerval Zanella c90cfce849 posix: Fix pidfd_spawn/pidfd_spawnp leak if execve fails (BZ 31695)
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>
2024-06-25 12:11:48 -03:00
..
2024-02-27 10:52:58 -03:00
2021-09-03 22:06:44 +05:30
2021-09-03 22:06:44 +05:30
2024-01-01 10:53:40 -08:00
2021-06-15 10:42:11 -03:00
2021-06-15 10:42:11 -03:00
2023-10-24 12:31:00 +02:00