diff --git a/src/acl.c b/src/acl.c index c4f193488..b04c9dfa9 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++) {