--- sapi/fpm/fpm/fpm_main.c 2014-04-08 07:17:51.106951000 +0200 +++ sapi/fpm/fpm/fpm_main.c 2014-04-29 16:20:05.975142000 +0200 @@ -1211,8 +1211,20 @@ char *path_info; if (apache_was_here) { /* recall that PATH_INFO won't exist */ + int offset; + char *tmp_str; path_info = script_path_translated + ptlen; tflag = (slen != 0 && (!orig_path_info || strcmp(orig_path_info, path_info) != 0)); + offset = strlen(env_script_name) - strlen(path_info); + if (strcmp(env_script_name + offset, path_info) == 0) { + tmp_str = (char *) emalloc(offset + 1); + memcpy(tmp_str, env_script_name, offset); + tmp_str[offset] = '\0'; + if (!orig_script_name || !*orig_script_name) { + orig_script_name = env_script_name; + } + env_script_name = tmp_str; + } } else { path_info = env_path_info ? env_path_info + pilen - slen : NULL; tflag = (orig_path_info != path_info);