From 0a992ffec9bcb41e39e8b917d533bade986891da Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 30 Mar 2015 16:34:29 +0100 Subject: [PATCH] Fix wrong usage of iterators. --- src/libserver/cfg_rcl.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index 6beda0f00..1d77e3168 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -1484,7 +1484,6 @@ rspamd_rcl_parse (struct rspamd_rcl_section *top, { const ucl_object_t *found, *cur_obj; struct rspamd_rcl_section *cur, *tmp, *found_sec; - ucl_object_iter_t it; if (obj->type != UCL_OBJECT) { g_set_error (err, @@ -1499,16 +1498,12 @@ rspamd_rcl_parse (struct rspamd_rcl_section *top, { if (strcmp (cur->name, "*") == 0) { /* Default section handler */ - - it = ucl_object_iterate_new (obj); - while ((cur_obj = ucl_object_iterate_safe (it, false)) != NULL) { + LL_FOREACH (obj, cur_obj) { HASH_FIND_STR (top, ucl_object_key (cur_obj), found_sec); if (found_sec == NULL) { if (cur->handler != NULL) { if (!cur->handler (pool, cur_obj, ptr, cur, err)) { - ucl_object_iterate_free (it); - return FALSE; } } @@ -1521,7 +1516,6 @@ rspamd_rcl_parse (struct rspamd_rcl_section *top, } } } - ucl_object_iterate_free (it); } else { found = ucl_object_find_key (obj, cur->name); @@ -1542,12 +1536,9 @@ rspamd_rcl_parse (struct rspamd_rcl_section *top, } } - it = ucl_object_iterate_new (obj); - while ((cur_obj = ucl_object_iterate_safe (it, false)) != NULL) { + LL_FOREACH (found, cur_obj) { if (cur->handler != NULL) { if (!cur->handler (pool, cur_obj, ptr, cur, err)) { - ucl_object_iterate_free (it); - return FALSE; } } @@ -1559,7 +1550,6 @@ rspamd_rcl_parse (struct rspamd_rcl_section *top, err); } } - ucl_object_iterate_free (it); } } if (cur->fin) { -- 2.39.5