mirror of
https://github.com/haproxy/haproxy.git
synced 2026-06-07 15:52:10 -04: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
1 changed files with 2 additions and 2 deletions
|
|
@ -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…
Reference in a new issue