diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.com> | 2016-03-20 17:35:24 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.com> | 2016-03-20 18:17:52 -0300 |
commit | 2a69f853c03034c2e383e0f9c35b5402ce8b5473 (patch) | |
tree | 12da61d986fad63834f51d689fb023d2767a07a7 /posix | |
parent | 0e8e593d7339a477ad7fdc4664d5948f824f74d6 (diff) | |
download | glibc-2a69f853c03034c2e383e0f9c35b5402ce8b5473.zip glibc-2a69f853c03034c2e383e0f9c35b5402ce8b5473.tar.gz glibc-2a69f853c03034c2e383e0f9c35b5402ce8b5473.tar.bz2 |
posix: Fix posix_spawn invalid memory access
Current Linux posix_spawn spawn do not test if the pid argument is
valid before trying to update it for success case. This patch fixes
it.
Tested on x86_64 and i686.
* sysdeps/unix/sysv/linux/spawni.c (__spawnix): Fix invalid memory
access where posix_spawn success and pid argument is null.
* posix/tst-spawn.c (do_test): Add posix_spawn null pid argument for
success case.
Diffstat (limited to 'posix')
-rw-r--r-- | posix/tst-spawn.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/posix/tst-spawn.c b/posix/tst-spawn.c index 68f4357..c046098 100644 --- a/posix/tst-spawn.c +++ b/posix/tst-spawn.c @@ -257,6 +257,10 @@ do_test (int argc, char *argv[]) if (posix_spawn (&pid, argv[1], &actions, NULL, spargv, environ) != 0) error (EXIT_FAILURE, errno, "posix_spawn"); + /* Same test but with a NULL pid argument. */ + if (posix_spawn (NULL, argv[1], &actions, NULL, spargv, environ) != 0) + error (EXIT_FAILURE, errno, "posix_spawn"); + /* Cleanup. */ if (posix_spawn_file_actions_destroy (&actions) != 0) error (EXIT_FAILURE, errno, "posix_spawn_file_actions_destroy"); |