mirror of
https://github.com/php/php-src.git
synced 2024-11-26 19:33:55 +08:00
fix for bug 6491, http://www.php.net/bugs.php?id=6491, removes a bit of
(what I think is) broken logic. # This is as discussed on the mailing list previously. This change # does fix the problem, however, the extra code was in there for a # reason (I'm guessing :), i'm ready to revert this patch in a jiffy # if someone has a good reason why that (just removed) extra logic # should be in there.
This commit is contained in:
parent
11961e6585
commit
ba49860cc8
@ -156,30 +156,7 @@ static void sapi_cgi_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS
|
||||
php_import_environment_variables(track_vars_array ELS_CC PLS_CC);
|
||||
|
||||
/* Build the special-case PHP_SELF variable for the CGI version */
|
||||
#if FORCE_CGI_REDIRECT
|
||||
php_register_variable("PHP_SELF", (SG(request_info).request_uri ? SG(request_info).request_uri:""), track_vars_array ELS_CC PLS_CC);
|
||||
#else
|
||||
{
|
||||
char *sn;
|
||||
char *val;
|
||||
int l=0;
|
||||
|
||||
sn = getenv("SCRIPT_NAME");
|
||||
pi = SG(request_info).request_uri;
|
||||
if (sn)
|
||||
l += strlen(sn);
|
||||
if (pi)
|
||||
l += strlen(pi);
|
||||
if (pi && sn && !strcmp(pi, sn)) {
|
||||
l -= strlen(pi);
|
||||
pi = NULL;
|
||||
}
|
||||
val = emalloc(l + 1);
|
||||
sprintf(val, "%s%s", (sn ? sn : ""), (pi ? pi : "")); /* SAFE */
|
||||
php_register_variable("PHP_SELF", val, track_vars_array ELS_CC PLS_CC);
|
||||
efree(val);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user