From 6bf1ff261868e20256a66601060dd191f33c01e6 Mon Sep 17 00:00:00 2001 From: Yann Ylavic Date: Thu, 21 Dec 2017 13:44:07 +0000 Subject: [PATCH] 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 --- server/util_script.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 */ -- 2.47.3