Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Adhemerval Zanella committed Mar 20, 2016
1 parent 0e8e593 commit 2a69f85
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
7 changes: 7 additions & 0 deletions ChangeLog
@@ -1,3 +1,10 @@
2016-03-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>

* 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.

2016-03-20 Samuel Thibault <samuel.thibault@ens-lyon.org>:

* sysdeps/mach/hurd/i386/c++-types.data: New file.
Expand Down
4 changes: 4 additions & 0 deletions posix/tst-spawn.c
Expand Up @@ -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");
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/unix/sysv/linux/spawni.c
Expand Up @@ -381,7 +381,7 @@ __spawnix (pid_t * pid, const char *file,

close_not_cancel (args.pipe[0]);

if (!ec && new_pid)
if (!ec && pid)
*pid = new_pid;

__sigprocmask (SIG_SETMASK, &args.oldmask, 0);
Expand Down

0 comments on commit 2a69f85

Please sign in to comment.