From 1205ddb60bec04a25bb4bdf950f16860febfdea5 Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Fri, 30 Jun 2017 17:01:34 +0100 Subject: [PATCH] mod_proxy_fcgi: fix further regressions (PR 61202) --- httpd-2.4.26-r1800306.patch | 86 +++++++++++++++++++++++++++++++++++++ httpd.spec | 7 ++- pullrev.sh | 2 +- 3 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 httpd-2.4.26-r1800306.patch diff --git a/httpd-2.4.26-r1800306.patch b/httpd-2.4.26-r1800306.patch new file mode 100644 index 0000000..4a8bc2d --- /dev/null +++ b/httpd-2.4.26-r1800306.patch @@ -0,0 +1,86 @@ +# ./pullrev.sh 1800306 + +http://svn.apache.org/viewvc?view=revision&revision=1800306 + +diff -uap httpd-2.4.26/modules/mappers/mod_actions.c.r1800306 httpd-2.4.26/modules/mappers/mod_actions.c +--- httpd-2.4.26/modules/mappers/mod_actions.c.r1800306 ++++ httpd-2.4.26/modules/mappers/mod_actions.c +@@ -186,8 +186,7 @@ + ap_field_noparam(r->pool, r->content_type); + + if (action && (t = apr_table_get(conf->action_types, action))) { +- int virtual = (*t++ == '0' ? 0 : 1); +- if (!virtual && r->finfo.filetype == APR_NOFILE) { ++ if (*t++ == '0' && r->finfo.filetype == APR_NOFILE) { + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(00652) + "File does not exist: %s", r->filename); + return HTTP_NOT_FOUND; +@@ -198,9 +197,6 @@ + * (will be REDIRECT_HANDLER there) + */ + apr_table_setn(r->subprocess_env, "HANDLER", action); +- if (virtual) { +- apr_table_setn(r->notes, "virtual_script", "1"); +- } + } + + if (script == NULL) +diff -uap httpd-2.4.26/modules/proxy/mod_proxy_fcgi.c.r1800306 httpd-2.4.26/modules/proxy/mod_proxy_fcgi.c +--- httpd-2.4.26/modules/proxy/mod_proxy_fcgi.c.r1800306 ++++ httpd-2.4.26/modules/proxy/mod_proxy_fcgi.c +@@ -321,7 +321,6 @@ + apr_status_t rv; + apr_size_t avail_len, len, required_len; + int next_elem, starting_elem; +- int fpm = 0; + fcgi_req_config_t *rconf = ap_get_module_config(r->request_config, &proxy_fcgi_module); + fcgi_dirconf_t *dconf = ap_get_module_config(r->per_dir_config, &proxy_fcgi_module); + +@@ -354,8 +353,6 @@ + *qs = '\0'; + } + } +- } else { +- fpm = 1; + } + + if (newfname) { +@@ -364,38 +361,9 @@ + } + } + +-#if 0 +- ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(09999) +- "r->filename: %s", (r->filename ? r->filename : "nil")); +- ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(09999) +- "r->uri: %s", (r->uri ? r->uri : "nil")); +- ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(09999) +- "r->path_info: %s", (r->path_info ? r->path_info : "nil")); +-#endif +- + ap_add_common_vars(r); + ap_add_cgi_vars(r); + +- if (fpm || apr_table_get(r->notes, "virtual_script")) { +- /* +- * Adjust SCRIPT_NAME, PATH_INFO and PATH_TRANSLATED for PHP-FPM +- * TODO: Right now, PATH_INFO and PATH_TRANSLATED look OK... +- */ +- const char *pend; +- const char *script_name = apr_table_get(r->subprocess_env, "SCRIPT_NAME"); +- pend = script_name + strlen(script_name); +- if (r->path_info && *r->path_info) { +- pend = script_name + ap_find_path_info(script_name, r->path_info) - 1; +- } +- while (pend != script_name && *pend != '/') { +- pend--; +- } +- apr_table_setn(r->subprocess_env, "SCRIPT_NAME", pend); +- ap_log_rerror(APLOG_MARK, APLOG_TRACE4, 0, r, +- "fpm:virtual_script: Modified SCRIPT_NAME to: %s", +- pend); +- } +- + /* XXX are there any FastCGI specific env vars we need to send? */ + + /* Give admins final option to fine-tune env vars */ diff --git a/httpd.spec b/httpd.spec index 5882045..6a6226e 100644 --- a/httpd.spec +++ b/httpd.spec @@ -8,7 +8,7 @@ Summary: Apache HTTP Server Name: httpd Version: 2.4.26 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://httpd.apache.org/ Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2 Source1: index.html @@ -67,6 +67,7 @@ Patch56: httpd-2.4.4-mod_unique_id.patch Patch57: httpd-2.4.10-sigint.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1397243 Patch58: httpd-2.4.25-r1738878.patch +Patch59: httpd-2.4.26-r1800306.patch # Security fixes License: ASL 2.0 @@ -213,6 +214,7 @@ interface for storing and accessing per-user session data. %patch56 -p1 -b .uniqueid %patch57 -p1 -b .sigint %patch58 -p1 -b .r1738878 +%patch59 -p1 -b .r1800306 # Patch in the vendor string sed -i '/^#define PLATFORM/s/Unix/%{vstring}/' os/unix/os.h @@ -691,6 +693,9 @@ rm -rf $RPM_BUILD_ROOT %{_rpmconfigdir}/macros.d/macros.httpd %changelog +* Fri Jun 30 2017 Joe Orton - 2.4.26-2 +- mod_proxy_fcgi: fix further regressions (PR 61202) + * Mon Jun 19 2017 Luboš Uhliarik - 2.4.26-1 - new version 2.4.26 diff --git a/pullrev.sh b/pullrev.sh index 2b2fef9..d106968 100755 --- a/pullrev.sh +++ b/pullrev.sh @@ -7,7 +7,7 @@ fi repo="https://svn.apache.org/repos/asf/httpd/httpd/trunk" repo="https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x" -ver=2.4.25 +ver=2.4.26 prefix="httpd-${ver}" suffix="r$1${2:++}" fn="${prefix}-${suffix}.patch"