]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
and fixup delete rest of list on parse failure.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Mon, 6 Jun 2016 15:01:48 +0000 (15:01 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Mon, 6 Jun 2016 15:01:48 +0000 (15:01 +0000)
git-svn-id: file:///svn/unbound/trunk@3762 be551aaa-1e26-0410-a405-d3ace91eadb9

daemon/acl_list.c
util/config_file.c
util/config_file.h

index 4d40b092c946fa41ee8f97fa2a0a15f997762496..98be99b35b3835c4a18c305984f2993b4438c31f 100644 (file)
@@ -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);
index 90ab61d8c7718c50011684709956df9ae4c90650..4754e2d51dff894834134b6b7b9b61222af4e8bd 100644 (file)
@@ -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;
index 2483581e6108e78a04fbd608fd1e5f34861092ed..505c66f88eaeacb51c3497d713c48495eec4fa6f 100644 (file)
@@ -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