From: Tom Hughes Date: Wed, 21 Jul 2004 16:23:38 +0000 (+0000) Subject: Fix checking of execve() when argv is a null pointer. X-Git-Tag: svn/VALGRIND_2_2_0~116 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a75fc74df17aa37da3bfa33258b6850f8159137;p=thirdparty%2Fvalgrind.git Fix checking of execve() when argv is a null pointer. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2520 --- diff --git a/coregrind/vg_syscalls.c b/coregrind/vg_syscalls.c index b8c118dfdc..27f384cc5a 100644 --- a/coregrind/vg_syscalls.c +++ b/coregrind/vg_syscalls.c @@ -1803,7 +1803,8 @@ PRE(execve) MAYBE_PRINTF("execve ( %p(%s), %p, %p )\n", arg1, arg1, arg2, arg3); SYSCALL_TRACK( pre_mem_read_asciiz, tid, "execve(filename)", arg1 ); - pre_argv_envp( arg2, tid, "execve(argv)", "execve(argv[i])" ); + if (arg2 != (UInt)NULL) + pre_argv_envp( arg2, tid, "execve(argv)", "execve(argv[i])" ); if (arg3 != (UInt)NULL) pre_argv_envp( arg3, tid, "execve(envp)", "execve(envp[i])" ); diff --git a/none/tests/execve.c b/none/tests/execve.c index 69b2c9f47d..5f97666956 100644 --- a/none/tests/execve.c +++ b/none/tests/execve.c @@ -6,9 +6,7 @@ int main(int argc, char **argv) { if (argc == 1) { - char *newargv[3] = { argv[0], "done", NULL }; - - if (execve(argv[0], newargv, NULL) < 0) + if (execve(argv[0], NULL, NULL) < 0) { perror("execve"); exit(1);