mirror of git://git.musl-libc.org/musl
use direct syscall rather than write function in posix_spawn child
the write function is a cancellation point and accesses thread-local state belonging to the calling thread in the parent process. since cancellation is blocked for the duration of posix_spawn, this is probably safe, but it's fragile and unnecessary. making the syscall directly is just as easy and clearly safe.
This commit is contained in:
parent
1c12c24364
commit
8f7bc690f0
|
@ -136,7 +136,7 @@ static int child(void *args_vp)
|
|||
fail:
|
||||
/* Since sizeof errno < PIPE_BUF, the write is atomic. */
|
||||
ret = -ret;
|
||||
if (ret) while (write(p, &ret, sizeof ret) < 0);
|
||||
if (ret) while (__syscall(SYS_write, p, &ret, sizeof ret) < 0);
|
||||
_exit(127);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue