]> granicus.if.org Git - php/commitdiff
leave a sane environment behind (even if empty) when exiting
authorNuno Lopes <nlopess@php.net>
Sun, 7 Apr 2013 06:32:20 +0000 (02:32 -0400)
committerNuno Lopes <nlopess@php.net>
Sun, 7 Apr 2013 06:32:20 +0000 (02:32 -0400)
some OS atexit() handlers call getenv()

sapi/cli/ps_title.c

index 8dc46094dd6c75191bf9deeb5d8a92e2af0eb88c..6f3bdb862dfc1bb77169f71f17c054db17964252 100644 (file)
@@ -112,6 +112,7 @@ static const size_t ps_buffer_size = MAX_PATH;
 #elif defined(PS_USE_CLOBBER_ARGV)
 static char *ps_buffer;         /* will point to argv area */
 static size_t ps_buffer_size;   /* space determined at run time */
+static char *empty_environ[] = {0}; /* empty environment */
 #else
 #define PS_BUFFER_SIZE 256
 static char ps_buffer[PS_BUFFER_SIZE];
@@ -415,6 +416,9 @@ void cleanup_ps_args(char **argv)
                 free(frozen_environ[i]);
             free(frozen_environ);
             free(new_environ);
+            /* leave a sane environment behind since some atexit() handlers
+                call getenv(). */
+            environ = empty_environ;
         }
 #endif /* PS_USE_CLOBBER_ARGV */