Introduction
Introduction Statistics Contact Development Disclaimer Help
Only check status field if waitpid() did not fail - noice - small file browser …
git clone git://git.codemadness.org/noice
Log
Files
Refs
README
LICENSE
---
commit ab7d3fba38ec3bfe6ce6ba223106c05fdd00331d
parent 19a73c3706a1b4fbfe8dfe03f570d4a6dc468186
Author: sin <[email protected]>
Date: Thu, 22 Aug 2019 16:04:39 +0100
Only check status field if waitpid() did not fail
Diffstat:
M spawn.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/spawn.c b/spawn.c
@@ -13,7 +13,7 @@ int
spawnvp(char *dir, char *file, char *argv[])
{
pid_t pid;
- int status;
+ int status, r;
pid = fork();
switch (pid) {
@@ -25,8 +25,10 @@ spawnvp(char *dir, char *file, char *argv[])
execvp(file, argv);
_exit(1);
default:
- while (waitpid(pid, &status, 0) == -1 && errno == EINTR)
- ;
+ while ((r = waitpid(pid, &status, 0)) == -1 && errno == EINTR)
+ continue;
+ if (r == -1)
+ return -1;
if (WIFEXITED(status) && WEXITSTATUS(status) != 0)
return -1;
}
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.