From 4baa3ea15a646dfce1e2d4edb0ae606d913ca6c2 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Tue, 18 Aug 2015 15:21:31 +0100 Subject: [PATCH] Fix key attributes support. --- src/libserver/cfg_rcl.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index 94817d8c6..ea9dc2ab9 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -1635,10 +1635,10 @@ rspamd_rcl_process_section (struct rspamd_rcl_section *sec, g_assert (obj != NULL); g_assert (sec->handler != NULL); - it = ucl_object_iterate_new (obj); + it = NULL; if (sec->key_attr != NULL) { - while ((cur = ucl_object_iterate_safe (it, false)) != NULL) { + while ((cur = ucl_iterate_object (obj, &it, true)) != NULL) { if (ucl_object_type (cur) != UCL_OBJECT) { is_nested = FALSE; break; @@ -1649,20 +1649,16 @@ rspamd_rcl_process_section (struct rspamd_rcl_section *sec, is_nested = FALSE; } - ucl_object_iterate_free (it); - if (is_nested) { /* Just reiterate on all subobjects */ - it = ucl_object_iterate_new (obj); + it = NULL; - while ((cur = ucl_object_iterate_safe (it, false)) != NULL) { + while ((cur = ucl_iterate_object (obj, &it, true)) != NULL) { if (!sec->handler (pool, cur, ucl_object_key (cur), ptr, sec, err)) { - ucl_object_iterate_free (it); return FALSE; } } - ucl_object_iterate_free (it); return TRUE; } else { -- 2.39.5