1 commit 4db294bc0b7988607f2dfdb9d57974b2ba47cbc3
2 Author: Jerome Magnin <jmagnin@haproxy.com>
3 Date: Mon Aug 26 11:44:21 2019 +0200
5 BUG/MEDIUM: url32 does not take the path part into account in the returned hash.
7 The url32 sample fetch does not take the path part of the URL into
8 account. This is because in smp_fetch_url32() we erroneously modify
9 path.len and path.ptr before testing their value and building the
10 path based part of the hash.
14 This must be backported as far as 1.9, when HTX was introduced.
16 (cherry picked from commit 2dd26ca9ff8e642611b8b012d6aee45ea45196bc)
17 [wt: adjusted context, we still have legacy in 2.0]
18 Signed-off-by: Willy Tarreau <w@1wt.eu>
20 diff --git a/src/http_fetch.c b/src/http_fetch.c
21 index e372a122..6448bde9 100644
22 --- a/src/http_fetch.c
23 +++ b/src/http_fetch.c
24 @@ -2735,10 +2735,6 @@ static int smp_fetch_url32(const struct arg *args, struct sample *smp, const cha
25 /* now retrieve the path */
26 sl = http_get_stline(htx);
27 path = http_get_path(htx_sl_req_uri(sl));
28 - while (path.len > 0 && *(path.ptr) != '?') {
32 if (path.len && *(path.ptr) == '/') {
34 hash = *(path.ptr++) + (hash << 6) + (hash << 16) - hash;