mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-04 12:41:00 +02:00
BUG/MEDIUM: acl: do not evaluate next terms after a miss
When a condition does something like : action if A B C || D E F If B returns a miss (can't tell true or false), C must not be evaluated. This is important when C has a side effect (eg: sc*_inc_gpc0). However the second part after the || can still be evaluated.
This commit is contained in:
parent
44778ad87d
commit
79c412b673
@ -1779,8 +1779,8 @@ int acl_exec_cond(struct acl_cond *cond, struct proxy *px, struct session *l4, v
|
||||
|
||||
suite_res &= acl_res;
|
||||
|
||||
/* we're ANDing these terms, so a single FAIL is enough */
|
||||
if (suite_res == ACL_PAT_FAIL)
|
||||
/* we're ANDing these terms, so a single FAIL or MISS is enough */
|
||||
if (suite_res != ACL_PAT_PASS)
|
||||
break;
|
||||
}
|
||||
cond_res |= suite_res;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user