From: Yann Ylavic Date: Thu, 21 Dec 2017 13:44:07 +0000 (+0000) Subject: ap_add_common_vars(): use apr_pstrmemdup(). X-Git-Tag: 2.5.0-alpha2-ci-test-only~3039 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6bf1ff261868e20256a66601060dd191f33c01e6;p=thirdparty%2Fapache%2Fhttpd.git ap_add_common_vars(): use apr_pstrmemdup(). This avoids a transient replacement/restore of '?' by '\0' in r->filename. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1818924 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/util_script.c b/server/util_script.c index 3a6f23d08de..153fe8949e3 100644 --- a/server/util_script.c +++ b/server/util_script.c @@ -264,9 +264,8 @@ AP_DECLARE(void) ap_add_common_vars(request_rec *r) apr_table_addn(e, "CONTEXT_DOCUMENT_ROOT", ap_context_document_root(r)); apr_table_addn(e, "SERVER_ADMIN", s->server_admin); /* Apache */ if (apr_table_get(r->notes, "proxy-noquery") && (q = ap_strchr(r->filename, '?'))) { - *q = '\0'; - apr_table_addn(e, "SCRIPT_FILENAME", apr_pstrdup(r->pool, r->filename)); - *q = '?'; + char *script_filename = apr_pstrmemdup(r->pool, r->filename, q - r->filename); + apr_table_addn(e, "SCRIPT_FILENAME", script_filename); } else { apr_table_addn(e, "SCRIPT_FILENAME", r->filename); /* Apache */