php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Return to Bug #65641
Patch Another_fix_for_mod_proxy_fcgi_v2.patch revision 2014-09-15 09:13 UTC by remi@php.net
Patch Another_fix_for_mod_proxy_fcgi.patch revision 2014-09-05 13:14 UTC by remi@php.net
Patch fpm_main-script_name-v2.patch revision 2014-04-29 14:22 UTC by rainer dot jung at kippdata dot de
Patch fpm_main-script_name.patch revision 2014-04-29 14:12 UTC by rainer dot jung at kippdata dot de
Patch fix_script_name_in_fpm_with_apace_fixed revision 2014-03-16 17:03 UTC by ryotakatsuki at gmail dot com
Patch fix_script_name_in_fpm_with_apache revision 2013-09-09 09:13 UTC by ryotakatsuki at gmail dot com

Patch fix_script_name_in_fpm_with_apace_fixed for FPM related Bug #65641

Patch version 2014-03-16 17:03 UTC

Return to Bug #65641 | Download this patch
Patch Revisions:

Developer: ryotakatsuki@gmail.com

--- php/sapi/fpm/fpm/fpm_main.c.orig	2013-08-20 06:42:41.000000000 +0200
+++ php/sapi/fpm/fpm/fpm_main.c	2013-09-05 15:41:08.673158409 +0200
@@ -1050,6 +1050,8 @@
 	char *env_path_translated = sapi_cgibin_getenv("PATH_TRANSLATED", sizeof("PATH_TRANSLATED") - 1 TSRMLS_CC);
 	char *script_path_translated = env_script_filename;
 	char *ini;
+    char *fixed_script_name;
+    char *tmp_str;
 	int apache_was_here = 0;
 
 	/* some broken servers do not have script_filename or argv0
@@ -1206,6 +1231,14 @@
 								/* recall that PATH_INFO won't exist */
 								path_info = script_path_translated + ptlen;
 								tflag = (slen != 0 && (!orig_path_info || strcmp(orig_path_info, path_info) != 0));
+
+                                if ((tmp_str = strstr(env_script_name, path_info)) && (strcmp(tmp_str, path_info) == 0 )) {
+                                   fixed_script_name = (char *) emalloc(strlen(env_script_name) - strlen(path_info) + 1);
+                                   strncpy ( fixed_script_name, env_script_name, strlen(env_script_name) -  strlen(path_info));
+                                   fixed_script_name[strlen(env_script_name) -  strlen(path_info)] = '\0';
+                                   orig_script_name = env_script_name;
+                                   env_script_name = fixed_script_name;
+                                }
 							} else {
 								path_info = env_path_info ? env_path_info + pilen - slen : NULL;
 								tflag = (orig_path_info != path_info);
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 07 09:01:27 2024 UTC