fix unsigned comparison bug in posix_spawn
read should never return anything but 0 or sizeof ec here, but if it does, we want to treat any other return as "success". then the caller will get back the pid and is responsible for waiting on it when it immediately exits.
This commit is contained in:
parent
fb6b159d9e
commit
4862864fc1
1 changed files with 1 additions and 1 deletions
|
|
@ -152,7 +152,7 @@ int __posix_spawnx(pid_t *restrict res, const char *restrict path,
|
|||
close(args.p[1]);
|
||||
|
||||
if (pid > 0) {
|
||||
if (read(args.p[0], &ec, sizeof ec) < sizeof ec) ec = 0;
|
||||
if (read(args.p[0], &ec, sizeof ec) != sizeof ec) ec = 0;
|
||||
else waitpid(pid, &(int){0}, 0);
|
||||
} else {
|
||||
ec = -pid;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue