From: Willy Tarreau Date: Mon, 16 Dec 2013 21:01:06 +0000 (+0100) Subject: BUG/MINOR: acl: parser must also stop at comma on ACL-only keywords X-Git-Tag: v1.5-dev21~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4bfa4228dc82f8f96bc517364fd900bdc5095f0a;p=thirdparty%2Fhaproxy.git BUG/MINOR: acl: parser must also stop at comma on ACL-only keywords Igor at owind reported that "url_reg,lower" does not parse because find_acl_kw() looks for the parenthesis but not for the comma. --- diff --git a/src/acl.c b/src/acl.c index c4f1934888..b04c9dfa99 100644 --- a/src/acl.c +++ b/src/acl.c @@ -76,7 +76,8 @@ struct acl *find_acl_by_name(const char *name, struct list *head) } /* Return a pointer to the ACL keyword , or NULL if not found. Note that if - * contains an opening parenthesis, only the left part of it is checked. + * contains an opening parenthesis or a comma, only the left part of it is + * checked. */ struct acl_keyword *find_acl_kw(const char *kw) { @@ -84,9 +85,9 @@ struct acl_keyword *find_acl_kw(const char *kw) const char *kwend; struct acl_kw_list *kwl; - kwend = strchr(kw, '('); - if (!kwend) - kwend = kw + strlen(kw); + kwend = kw; + while (*kwend && *kwend != '(' && *kwend != ',') + kwend++; list_for_each_entry(kwl, &acl_keywords.list, list) { for (index = 0; kwl->kw[index].kw != NULL; index++) {