From: Jean-Frederic Clere Date: Thu, 30 Apr 2009 15:43:34 +0000 (+0000) Subject: Prevent key=value being accepted as url. X-Git-Tag: 2.3.3~681 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fb49467b16234c3edb57b5e2f98fd12fcc39d8e0;p=thirdparty%2Fapache%2Fhttpd.git Prevent key=value being accepted as url. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@770293 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index 67346183c18..821a2c92a09 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -1761,22 +1761,26 @@ static const char *add_member(cmd_parms *cmd, void *dummy, const char *arg) if (cmd->path) path = apr_pstrdup(cmd->pool, cmd->path); + while (*arg) { + char *val; word = ap_getword_conf(cmd->pool, &arg); - if (!path) - path = word; - else if (!name) - name = word; - else { - char *val = strchr(word, '='); - if (!val) + val = strchr(word, '='); + + if (!val) { + if (!path) + path = word; + else if (!name) + name = word; + else { if (cmd->path) return "BalancerMember can not have a balancer name when defined in a location"; else return "Invalid BalancerMember parameter. Parameter must " "be in the form 'key=value'"; - else - *val++ = '\0'; + } + } else { + *val++ = '\0'; apr_table_setn(params, word, val); } }