From: Willy Tarreau Date: Fri, 19 Apr 2019 09:45:20 +0000 (+0200) Subject: BUG/MINOR: acl: properly detect pattern type SMP_T_ADDR X-Git-Tag: v2.0-dev3~214 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=78c5eec9497e1e60565492bc69581aea439e54cc;p=thirdparty%2Fhaproxy.git BUG/MINOR: acl: properly detect pattern type SMP_T_ADDR Since 1.6-dev4 with commit b2f8f087f ("MINOR: map: The map can return IPv4 and IPv6"), maps can return both IPv4 and IPv6 addresses, which is represented as SMP_T_ADDR at the output of the map converter. But the ACL parser only checks for either SMP_T_IPV4 or SMP_T_IPV6 and requires to see an explicit matching method specified. Given that it uses the same pattern parser for both address families, it implicitly is also compatible with SMP_T_ADDR, which ought to have been added there. This fix should be backported as far as 1.6. --- diff --git a/src/acl.c b/src/acl.c index b598088ad1..318cb5139b 100644 --- a/src/acl.c +++ b/src/acl.c @@ -401,6 +401,7 @@ struct acl_expr *parse_acl_expr(const char **args, char **err, struct arg_list * expr->pat.prune = pat_prune_fcts[PAT_MATCH_INT]; expr->pat.expect_type = pat_match_types[PAT_MATCH_INT]; break; + case SMP_T_ADDR: case SMP_T_IPV4: case SMP_T_IPV6: expr->pat.parse = pat_parse_fcts[PAT_MATCH_IP];