From: Jerome Magnin Date: Mon, 26 Aug 2019 09:44:21 +0000 (+0200) Subject: BUG/MEDIUM: url32 does not take the path part into account in the returned hash. X-Git-Tag: v2.1-dev2~172 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2dd26ca9ff8e642611b8b012d6aee45ea45196bc;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: url32 does not take the path part into account in the returned hash. The url32 sample fetch does not take the path part of the URL into account. This is because in smp_fetch_url32() we erroneously modify path.len and path.ptr before testing their value and building the path based part of the hash. This fixes issue #235 This must be backported as far as 1.9, when HTX was introduced. --- diff --git a/src/http_fetch.c b/src/http_fetch.c index 922e25cc1a..126c1a2a8d 100644 --- a/src/http_fetch.c +++ b/src/http_fetch.c @@ -1786,10 +1786,6 @@ static int smp_fetch_url32(const struct arg *args, struct sample *smp, const cha /* now retrieve the path */ sl = http_get_stline(htx); path = http_get_path(htx_sl_req_uri(sl)); - while (path.len > 0 && *(path.ptr) != '?') { - path.ptr++; - path.len--; - } if (path.len && *(path.ptr) == '/') { while (path.len--) hash = *(path.ptr++) + (hash << 6) + (hash << 16) - hash;