aboutsummaryrefslogtreecommitdiff
path: root/networking/httpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/httpd.c')
-rw-r--r--networking/httpd.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/networking/httpd.c b/networking/httpd.c
index 251eee01b..60dbba4d6 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1172,7 +1172,6 @@ static int sendCgi(const char *url,
*script = '/'; /* is directory, find next '/' */
}
addEnv("PATH", "INFO", script); /* set /PATH_INFO or NULL */
- addEnv("PATH", "", getenv("PATH"));
addEnv("REQUEST", "METHOD", request);
if(urlArgs) {
char *uri = alloca(strlen(purl) + 2 + strlen(urlArgs));
@@ -1996,6 +1995,19 @@ int httpd_main(int argc, char *argv[])
# endif
#endif
+#ifdef CONFIG_FEATURE_HTTPD_CGI
+ {
+ char *p = getenv("PATH");
+
+ if(p)
+ p = bb_xstrdup(p);
+ clearenv();
+ if(p) {
+ setenv("PATH", p, 0);
+ }
+ }
+#endif
+
#ifdef CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
sighup_handler(0);
#else