]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: http-act: make release_http_redir() more robust
authorWilly Tarreau <w@1wt.eu>
Mon, 25 Apr 2022 08:25:15 +0000 (10:25 +0200)
committerWilly Tarreau <w@1wt.eu>
Mon, 25 Apr 2022 14:09:26 +0000 (16:09 +0200)
Since commit dd7e6c6dc ("BUG/MINOR: http-rules: completely free incorrect
TCP rules on error") free_act_rule() is called on some error paths, and one
of them involves incomplete redirect rules that may cause a crash if the
rule wasn't yet initialized, as shown in this config snippet:

   frontend ft
      mode http
      bind *:8001
      http-request redirect location /%[always_false,sdbm]

Let's simply make release_http_redir() more robust against null redirect
rules.

No backport needed since it seems that the only way to trigger this was
the extra check above that was merged during 2.6-dev.

src/http_act.c

index 97d0024fe065b13caeeaad1f1587748150a1f6ca..95f6fdebeae600d6d27d422c95dd75ef80c1b6d0 100644 (file)
@@ -1760,6 +1760,9 @@ static void release_http_redir(struct act_rule *rule)
        struct redirect_rule *redir;
 
        redir = rule->arg.redir;
+       if (!redir)
+               return;
+
        LIST_DELETE(&redir->list);
        if (redir->cond) {
                prune_acl_cond(redir->cond);