diff options
Diffstat (limited to 'networking')
-rw-r--r-- | networking/httpd.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index 251eee0..60dbba4 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 |