]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix memory leak in dns_catz_options_setdefault() for zonedir
authorOndřej Surý <ondrej@sury.org>
Wed, 11 Mar 2026 12:17:32 +0000 (13:17 +0100)
committerOndřej Surý <ondrej@isc.org>
Sat, 14 Mar 2026 06:57:00 +0000 (07:57 +0100)
When defaults->zonedir is set, opts->zonedir is unconditionally
overwritten without freeing the previous value. This leaks memory
on every catalog zone update when zonedir defaults are configured.

Free the existing opts->zonedir before replacing it.

lib/dns/catz.c

index 6e166212040cd2a1615fdf674d431190e912c01b..970ffbcba1ad757755e4c803a34b4db170ca55a0 100644 (file)
@@ -225,6 +225,9 @@ dns_catz_options_setdefault(isc_mem_t *mctx, const dns_catz_options_t *defaults,
        }
 
        if (defaults->zonedir != NULL) {
+               if (opts->zonedir != NULL) {
+                       isc_mem_free(mctx, opts->zonedir);
+               }
                opts->zonedir = isc_mem_strdup(mctx, defaults->zonedir);
        }