From 4bfa4228dc82f8f96bc517364fd900bdc5095f0a Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 16 Dec 2013 22:01:06 +0100 Subject: [PATCH] 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. --- src/acl.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/acl.c b/src/acl.c index c4f1934..b04c9df 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++) { -- 1.7.10.4