BUG/MINOR: http-act: make release_http_redir() more robust

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.
This commit is contained in:
Willy Tarreau 2022-04-25 10:25:15 +02:00
parent 643f1b7bef
commit 16daaf319c

View 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);