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.
This commit is contained in:
Ondřej Surý 2026-03-11 13:17:32 +01:00 committed by Ondřej Surý
parent da6a85dc63
commit 5cd17c8adc
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41

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