mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
BUG/MAJOR: sample: Wrong stick-table name parsing in "if/unless" ACL condition.
This bug was introduced by 1b8e68e commit which supposed the stick-table was always stored in struct arg at parsing time. This is never the case with the usage of "if/unless" conditions in stick-table declared as backends. In this case, this is the name of the proxy which must be considered as the stick-table name. This must be backported to 2.0.
This commit is contained in:
parent
1ae2a88781
commit
9417f4534a
12
src/sample.c
12
src/sample.c
@ -1245,15 +1245,11 @@ int smp_resolve_args(struct proxy *p)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ARGT_TAB:
|
case ARGT_TAB:
|
||||||
if (!arg->data.str.data) {
|
if (arg->data.str.data)
|
||||||
ha_alert("parsing [%s:%d] : missing table name in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
|
stktname = arg->data.str.area;
|
||||||
cur->file, cur->line,
|
else
|
||||||
cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
|
stktname = px->id;
|
||||||
cfgerr++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
stktname = arg->data.str.area;
|
|
||||||
t = stktable_find_by_name(stktname);
|
t = stktable_find_by_name(stktname);
|
||||||
if (!t) {
|
if (!t) {
|
||||||
ha_alert("parsing [%s:%d] : unable to find table '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
|
ha_alert("parsing [%s:%d] : unable to find table '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user