From a483334f9764813e4140399e454f5120f2ccdfe4 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sat, 24 Aug 2019 17:40:41 -0400 Subject: [PATCH] * src/job.c (child_execute_job): Set pid to -1 on posix_spawn failure. --- src/job.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/job.c b/src/job.c index 1df329ee..604b1d10 100644 --- a/src/job.c +++ b/src/job.c @@ -2236,7 +2236,7 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp) int fderr = FD_STDERR; pid_t pid; int r; -#if USE_POSIX_SPAWN +#if defined(USE_POSIX_SPAWN) short flags = 0; posix_spawnattr_t attr; posix_spawn_file_actions_t fa; @@ -2280,8 +2280,6 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp) #else /* use posix_spawn() */ - pid = -1; - if ((r = posix_spawnattr_init (&attr)) != 0) goto done; @@ -2338,9 +2336,13 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp) cleanup: posix_spawn_file_actions_destroy (&fa); posix_spawnattr_destroy (&attr); -#endif /* have posix_spawn() */ done: + if (r != 0) + pid = -1; + +#endif /* have posix_spawn() */ + if (pid < 0) OSS (error, NILF, "%s: %s", argv[0], strerror (r));