diff --git a/daemon/acl_list.c b/daemon/acl_list.c index 4d40b092c..98be99b35 100644 --- a/daemon/acl_list.c +++ b/daemon/acl_list.c @@ -298,8 +298,10 @@ read_acl_tags(struct acl_list* acl, struct config_file* cfg) cfg->acl_tags = NULL; while(p) { log_assert(p->str && p->str2); - if(!acl_list_tags_cfg(acl, p->str, p->str2, p->str2len)) + if(!acl_list_tags_cfg(acl, p->str, p->str2, p->str2len)) { + config_del_strbytelist(p); return 0; + } /* free the items as we go to free up memory */ np = p->next; free(p->str); diff --git a/util/config_file.c b/util/config_file.c index 90ab61d8c..4754e2d51 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -996,8 +996,7 @@ config_del_strarray(char** array, int num) free(array); } -/** delete stringbytelist */ -static void +void config_del_strbytelist(struct config_strbytelist* p) { struct config_strbytelist* np; diff --git a/util/config_file.h b/util/config_file.h index 2483581e6..505c66f88 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -664,6 +664,9 @@ void config_deldblstrlist(struct config_str2list* list); */ void config_deltrplstrlist(struct config_str3list* list); +/** delete stringbytelist */ +void config_del_strbytelist(struct config_strbytelist* list); + /** * Delete a stub item * @param p: stub item