]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: http_rules: fix errors paths in http_parse_redirect_rule()
authorAurelien DARRAGON <adarragon@haproxy.com>
Thu, 11 May 2023 08:34:49 +0000 (10:34 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 11 May 2023 13:37:04 +0000 (15:37 +0200)
commit5313570605fdcf471e7286a68432830a2a1ca72f
tree139e6619f456ef52a24287d18468f9c2f8b9753f
parent7abc9224a69eb5f1b592336044257b38823a8fe3
BUG/MINOR: http_rules: fix errors paths in http_parse_redirect_rule()

http_parse_redirect_rule() doesn't perform enough checks around NULL
returning allocating functions.

Moreover, existing error paths don't perform cleanups. This could lead to
memory leaks.

Adding a few checks and a cleanup path to ensure memory errors are
properly handled and that no memory leaks occurs within the function
(already allocated structures are freed on error path).

It should partially fix GH #2130.

This patch depends on ("MINOR: proxy: add http_free_redirect_rule() function")

This could be backported up to 2.4. The patch is also relevant for
2.2 but "MINOR: proxy: add http_free_redirect_rule() function" would
need to be adapted first.

==

Backport notes:

-> For 2.2 only:

Replace:

    (strcmp(args[cur_arg], "drop-query") == 0)

with:

    (!strcmp(args[cur_arg],"drop-query"))

-> For 2.2 and 2.4:

Replace:

    "expects 'code', 'prefix', 'location', 'scheme', 'set-cookie', 'clear-cookie', 'drop-query', 'ignore-empty' or 'append-slash' (was '%s')",

with:

    "expects 'code', 'prefix', 'location', 'scheme', 'set-cookie', 'clear-cookie', 'drop-query' or 'append-slash' (was '%s')",
src/http_rules.c