From: Yann Ylavic Date: Fri, 19 Jun 2020 15:39:33 +0000 (+0000) Subject: ap_proxy_define_match_worker: don't copy the url unnecessarily. X-Git-Tag: 2.5.0-alpha2-ci-test-only~1369 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db6c2c21c1729b4afd9a5385015510ff1214399e;p=thirdparty%2Fapache%2Fhttpd.git ap_proxy_define_match_worker: don't copy the url unnecessarily. And save a few cycles, when the duplication is needed, by not copying the ignored part. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1878994 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c index 1597b9f211b..59b77aa7c32 100644 --- a/modules/proxy/proxy_util.c +++ b/modules/proxy/proxy_util.c @@ -1951,12 +1951,12 @@ PROXY_DECLARE(char *) ap_proxy_define_match_worker(apr_pool_t *p, int do_malloc) { char *err; - char *rurl = apr_pstrdup(p, url); - char *pdollar = ap_strchr(rurl, '$'); + const char *pdollar = ap_strchr_c(url, '$'); - if (pdollar != NULL) - *pdollar = '\0'; - err = ap_proxy_define_worker(p, worker, balancer, conf, rurl, do_malloc); + if (pdollar != NULL) { + url = apr_pstrmemdup(p, url, pdollar - url); + } + err = ap_proxy_define_worker(p, worker, balancer, conf, url, do_malloc); if (err) { return err; }