]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: vars: run over the correct list in release_store_rules()
authorWilly Tarreau <w@1wt.eu>
Fri, 3 Sep 2021 08:58:07 +0000 (10:58 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 3 Sep 2021 09:01:12 +0000 (11:01 +0200)
In commit 9a621ae76 ("MEDIUM: vars: add a new "set-var-fmt" action")
we introduced the support for format strings in variables with the
ability to release them on exit, except that it's the wrong list that
was being scanned for the rule (http vs vars), resulting in random
crashes during deinit.

This was a recent commit in 2.5-dev, no backport is needed.

src/vars.c

index bf53d871099d2473d5558002a2ff9c11746178fe..85c6fc4bdd0270232cc96b6ed8063173fbbd70b9 100644 (file)
@@ -724,7 +724,8 @@ static enum act_return action_clear(struct act_rule *rule, struct proxy *px,
 static void release_store_rule(struct act_rule *rule)
 {
        struct logformat_node *lf, *lfb;
-       list_for_each_entry_safe(lf, lfb, &rule->arg.http.fmt, list) {
+
+       list_for_each_entry_safe(lf, lfb, &rule->arg.vars.fmt, list) {
                LIST_DELETE(&lf->list);
                release_sample_expr(lf->expr);
                free(lf->arg);