]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix checking of execve() when argv is a null pointer.
authorTom Hughes <tom@compton.nu>
Wed, 21 Jul 2004 16:23:38 +0000 (16:23 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 21 Jul 2004 16:23:38 +0000 (16:23 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2520

coregrind/vg_syscalls.c
none/tests/execve.c

index b8c118dfdc2a371d200c36de91854731f873a3a3..27f384cc5af42eed555e8cf75922b6c2d91ed40b 100644 (file)
@@ -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])" );
 
index 69b2c9f47d3ee8029d911435a33ad238b77f02fc..5f9766695608c861b6f4cf9db587be3c41a7f331 100644 (file)
@@ -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);