nlopess Sat Jun 17 11:08:05 2006 UTC
Modified files: (Branch: PHP_5_2)
/php-src configure.in
/php-src/sapi/cgi cgi_main.c
Log:
plug memory leak in sapi_putenv, by using setenv(), that doesnt need any
malloc
http://cvs.php.net/viewcvs.cgi/php-src/configure.in?r1=1.579.2.52.2.1&r2=1.579.2.52.2.2&diff_format=u
Index: php-src/configure.in
diff -u php-src/configure.in:1.579.2.52.2.1 php-src/configure.in:1.579.2.52.2.2
--- php-src/configure.in:1.579.2.52.2.1 Sat May 6 21:58:03 2006
+++ php-src/configure.in Sat Jun 17 11:08:05 2006
@@ -1,4 +1,4 @@
- ## $Id: configure.in,v 1.579.2.52.2.1 2006/05/06 21:58:03 iliaa Exp $ -*-
autoconf -*-
+ ## $Id: configure.in,v 1.579.2.52.2.2 2006/06/17 11:08:05 nlopess Exp $ -*-
autoconf -*-
dnl ## Process this file with autoconf to produce a configure script.
divert(1)
@@ -505,6 +505,7 @@
setitimer \
setlocale \
localeconv \
+setenv \
setpgid \
setsockopt \
setvbuf \
http://cvs.php.net/viewcvs.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.267.2.15.2.5&r2=1.267.2.15.2.6&diff_format=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.5
php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.6
--- php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.5 Tue Jun 13 14:22:46 2006
+++ php-src/sapi/cgi/cgi_main.c Sat Jun 17 11:08:05 2006
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: cgi_main.c,v 1.267.2.15.2.5 2006/06/13 14:22:46 dmitry Exp $ */
+/* $Id: cgi_main.c,v 1.267.2.15.2.6 2006/06/17 11:08:05 nlopess Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -405,6 +405,18 @@
return fcgi_putenv(request, name, name_len, value);
}
#endif
+#if HAVE_SETENV
+ if (value) {
+ setenv(name, value, 1);
+ }
+#endif
+#if HAVE_UNSETENV
+ if (!value) {
+ unsetenv(name);
+ }
+#endif
+
+#if !HAVE_SETENV || !HAVE_UNSETENV
/* if cgi, or fastcgi and not found in fcgi env
check the regular environment
this leaks, but it's only cgi anyway, we'll fix
@@ -415,12 +427,19 @@
if (buf == NULL) {
return getenv(name);
}
+#endif
+#if !HAVE_SETENV
if (value) {
len = snprintf(buf, len - 1, "%s=%s", name, value);
- } else {
+ putenv(buf);
+ }
+#endif
+#if !HAVE_UNSETENV
+ if (!value) {
len = snprintf(buf, len - 1, "%s=", name);
+ putenv(buf);
}
- putenv(buf);
+#endif
return getenv(name);
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php