]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix crash when no environment is given to execve.
authorTom Hughes <tom@compton.nu>
Mon, 18 Jul 2005 23:23:03 +0000 (23:23 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 18 Jul 2005 23:23:03 +0000 (23:23 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4169

coregrind/m_syswrap/syswrap-generic.c

index c86691dee8b5b821140414cde3648368c8f2e3c2..8d72deb32fb50dbdfe717b580092ea04c2881694 100644 (file)
@@ -2280,7 +2280,7 @@ void VG_(reap_threads)(ThreadId self)
 PRE(sys_execve)
 {
    Char*        path;          /* path to executable */
-   Char**       envp;
+   Char**       envp = NULL;
    ThreadState* tst;
 
    PRINT("sys_execve ( %p(%s), %p, %p )", ARG1, ARG1, ARG2, ARG3);
@@ -2333,8 +2333,8 @@ PRE(sys_execve)
    // stage1/2 will set up the appropriate client environment.
    // Nb: we make a copy of the environment before trying to mangle it
    // as it might be in read-only memory (this was bug #101881).
-   envp = VG_(env_clone)( (Char**)ARG3 );
-   if (envp != NULL) {
+   if (ARG3 != NULL) {
+      envp = VG_(env_clone)( (Char**)ARG3 );
       VG_(env_remove_valgrind_env_stuff)( envp );
    }