]> 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ý (GitLab job 7025940) <ondrej@isc.org>
Sat, 14 Mar 2026 09:11:05 +0000 (09:11 +0000)
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.

(cherry picked from commit 5cd17c8adc2720b26e8d76599b7f7786f1c854ad)

lib/dns/catz.c

index 373a8dc921a5ae34a79f2ca23523c395f0d67aab..30b0bc4d4acfa039c34249e8058a026b8187bd38 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);
        }