]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: http: http-request replace-path duplicates the query string
authorJerome Magnin <jmagnin@haproxy.com>
Fri, 21 Feb 2020 09:37:48 +0000 (10:37 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 21 Feb 2020 10:52:14 +0000 (11:52 +0100)
commit4bbc9494b75b6f987c813546c1fa79a5e883a188
treef16f9425df140e2782df170723cfa633417aba1d
parent9dde0b2d31dd0e588a6fcd34ca8b6dd6cee73e3d
BUG/MINOR: http: http-request replace-path duplicates the query string

In http_action_replace_uri() we call http_get_path() in the case of
a replace-path rule. http_get_path() will return an ist pointing to
the start of the path, but uri.ptr + uri.len points to the end of the
uri. As as result, we are matching against a string containing the
query, which we append to the "path" later, effectively duplicating
the query string.

This patch uses the iststop() function introduced in "MINOR: ist: add
an iststop() function" to find the '?' character and update the ist
length when needed.

This fixes issue #510.

The bug was introduced by commit 262c3f1a ("MINOR: http: add a new
"replace-path" action"), which was backported to 2.1 and 2.0.
src/http_act.c