|
From: <sv...@va...> - 2005-07-18 23:23:05
|
Author: tom
Date: 2005-07-19 00:23:03 +0100 (Tue, 19 Jul 2005)
New Revision: 4169
Log:
Fix crash when no environment is given to execve.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-07-18 23:18:10 UTC (=
rev 4168)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-07-18 23:23:03 UTC (=
rev 4169)
@@ -2280,7 +2280,7 @@
PRE(sys_execve)
{
Char* path; /* path to executable */
- Char** envp;
+ Char** envp =3D NULL;
ThreadState* tst;
=20
PRINT("sys_execve ( %p(%s), %p, %p )", ARG1, ARG1, ARG2, ARG3);
@@ -2333,8 +2333,8 @@
// 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 =3D VG_(env_clone)( (Char**)ARG3 );
- if (envp !=3D NULL) {
+ if (ARG3 !=3D NULL) {
+ envp =3D VG_(env_clone)( (Char**)ARG3 );
VG_(env_remove_valgrind_env_stuff)( envp );
}
=20
|