From 956c40f106ead6d0191bc183805021e70c15e760 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 8 Apr 2021 10:58:56 +0900 Subject: core: Fix gpgrt_wait_processes, by skipping invalid PID. * src/spawn-posix.c (_gpgrt_wait_processes): Skip invalid PID. -- The API itself is not good to handle multiple processes. Given the API, skipping invalid PID is better for usefulness. GnuPG-bug-id: 5381 Reported-by: Jakub Jelen Signed-off-by: NIIBE Yutaka --- src/spawn-posix.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/spawn-posix.c b/src/spawn-posix.c index ac4c4ce..d33bade 100644 --- a/src/spawn-posix.c +++ b/src/spawn-posix.c @@ -703,8 +703,13 @@ _gpgrt_wait_processes (const char **pgmnames, pid_t *pids, size_t count, { int status = -1; + /* Skip invalid PID. */ if (pids[i] == (pid_t)(-1)) - return GPG_ERR_INV_VALUE; + { + r_exitcodes[i] = -1; + left -= 1; + continue; + } /* See if there was a previously stored result for this pid. */ if (get_result (pids[i], &status)) -- cgit v1.2.3