Fix memory leak in dns_catz_options_setdefault() for zonedir

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 5cd17c8adc)
This commit is contained in:
Ondřej Surý 2026-03-11 13:17:32 +01:00 committed by Ondřej Surý (GitLab job 7025940)
parent ac042af576
commit 930d9042a1

View 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);
}