You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by yl...@apache.org on 2017/12/21 13:44:07 UTC

svn commit: r1818924 - /httpd/httpd/trunk/server/util_script.c

Author: ylavic
Date: Thu Dec 21 13:44:07 2017
New Revision: 1818924

URL: http://svn.apache.org/viewvc?rev=1818924&view=rev
Log:
ap_add_common_vars(): use apr_pstrmemdup().

This avoids a transient replacement/restore of '?' by '\0' in r->filename.

Modified:
    httpd/httpd/trunk/server/util_script.c

Modified: httpd/httpd/trunk/server/util_script.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_script.c?rev=1818924&r1=1818923&r2=1818924&view=diff
==============================================================================
--- httpd/httpd/trunk/server/util_script.c (original)
+++ httpd/httpd/trunk/server/util_script.c Thu Dec 21 13:44:07 2017
@@ -264,9 +264,8 @@ AP_DECLARE(void) ap_add_common_vars(requ
     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 */