From f1d78f433d2985e5a6e36b2dd0a7941f94c5367e Mon Sep 17 00:00:00 2001 From: Nuno Lopes Date: Sat, 17 Jun 2006 11:14:21 +0000 Subject: [PATCH] MFB --- configure.in | 1 + sapi/cgi/cgi_main.c | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 98c50b73a2..9bb0b78724 100644 --- a/configure.in +++ b/configure.in @@ -502,6 +502,7 @@ scandir \ setitimer \ setlocale \ localeconv \ +setenv \ setpgid \ setsockopt \ setvbuf \ diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c index a1ea67bddc..fed17648b0 100644 --- a/sapi/cgi/cgi_main.c +++ b/sapi/cgi/cgi_main.c @@ -385,6 +385,18 @@ static char *_sapi_cgibin_putenv(char *name, char *value TSRMLS_DC) return fcgi_putenv(request, name, name_len, value); } +#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 @@ -395,12 +407,19 @@ static char *_sapi_cgibin_putenv(char *name, char *value TSRMLS_DC) 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); } -- 2.50.1