]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: acl: correctly consider boolean fetches when doing casts
authorWilly Tarreau <w@1wt.eu>
Wed, 12 Jun 2013 19:50:19 +0000 (21:50 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 12 Jun 2013 20:26:05 +0000 (22:26 +0200)
Commit 5adeda1 (acl: add option -m to change the pattern matching method)
was not completely correct with regards to boolean fetches. It only used
the sample type to determine if the test had to be performed as a boolean
instead of relying on the match function. Due to this, a test such as the
following would not correctly match as the pattern would be ignored :

    acl srv_down srv_is_up(s2) -m int 0

No backport is needed as this was merged first in 1.5-dev18.

src/acl.c

index 26c0ac8209df487665ef77609204aefb596d7a78..664ef5c6590613f6e42277f100fe9274752fb799 100644 (file)
--- a/src/acl.c
+++ b/src/acl.c
@@ -1750,7 +1750,7 @@ int acl_exec_cond(struct acl_cond *cond, struct proxy *px, struct session *l4, v
                                        continue;
                                }
 
-                               if (smp.type == SMP_T_BOOL) {
+                               if (expr->match == acl_match_nothing) {
                                        if (smp.data.uint)
                                                acl_res |= ACL_PAT_PASS;
                                        else