diff options
author | Dmitry Stogov <dmitry@php.net> | 2007-06-26 14:47:16 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2007-06-26 14:47:16 +0000 |
commit | e5909f149c569c64a24afbd053a5e6a85ca263d3 (patch) | |
tree | cf4c93022ec4fb3dc391630b3a41ef422ebeb2ec /sapi/cgi/cgi_main.c | |
parent | a61d445360185deb999c9e0493cc026973b9a781 (diff) | |
download | php-git-e5909f149c569c64a24afbd053a5e6a85ca263d3.tar.gz |
Fixed bug #40419 (Trailing Slash in CGI request don't work)
Diffstat (limited to 'sapi/cgi/cgi_main.c')
-rw-r--r-- | sapi/cgi/cgi_main.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c index 67559d6895..bf58269751 100644 --- a/sapi/cgi/cgi_main.c +++ b/sapi/cgi/cgi_main.c @@ -766,7 +766,7 @@ static void init_request_info(TSRMLS_D) char *env_document_root = sapi_cgibin_getenv("DOCUMENT_ROOT", sizeof("DOCUMENT_ROOT")-1 TSRMLS_CC); if (CGIG(fix_pathinfo)) { - char *real_path; + char *real_path = NULL; char *orig_path_translated = env_path_translated; char *orig_path_info = env_path_info; char *orig_script_name = env_script_name; @@ -926,6 +926,9 @@ static void init_request_info(TSRMLS_D) efree(pt); } } else { + if (real_path) { + script_path_translated = real_path; + } /* make sure path_info/translated are empty */ if (!orig_script_filename || (script_path_translated != orig_script_filename) || @@ -951,8 +954,10 @@ static void init_request_info(TSRMLS_D) } else { SG(request_info).request_uri = env_script_name; } + if (real_path) { + free(real_path); + } } - free(real_path); } else { #endif /* pre 4.3 behaviour, shouldn't be used but provides BC */ |