]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Exclude empty objects
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 3 May 2025 12:27:10 +0000 (13:27 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 3 May 2025 12:27:10 +0000 (13:27 +0100)
src/rspamadm/configdump.c

index 620a5c42f98e75a86804bf194450c18d36e39cb4..04e1f94ec9881505b2fb4936877d01e0d6829204 100644 (file)
@@ -130,14 +130,23 @@ filter_non_default(const ucl_object_t *obj)
        }
 
        if (ucl_object_type(obj) == UCL_OBJECT || ucl_object_type(obj) == UCL_ARRAY) {
+               bool has_non_default = false;
+
                result = ucl_object_typed_new(ucl_object_type(obj));
                while ((cur = ucl_object_iterate(obj, &it, true))) {
                        ucl_object_t *filtered = filter_non_default(cur);
                        if (filtered) {
+                               has_non_default = true;
                                ucl_object_insert_key(result, filtered, ucl_object_key(cur), cur->keylen, true);
                        }
                }
 
+               /* Avoid empty objects */
+               if (!has_non_default) {
+                       ucl_object_unref(result);
+                       result = NULL;
+               }
+
                return result;
        }