Fix cb_args memory leak in ns_query() error path

Initialize cb_args to NULL and free it in the cleanup path so it
is not leaked when the function fails after allocation.
This commit is contained in:
Ondřej Surý 2026-03-14 12:53:29 +01:00
parent 1505cb1c24
commit d7e1013741
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41

View file

@ -14261,7 +14261,7 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
bool reqnsid;
uint16_t udpsize = SEND_BUFFER_SIZE;
isc_sockaddr_t curraddr, sourceaddr;
struct stub_cb_args *cb_args;
struct stub_cb_args *cb_args = NULL;
REQUIRE(DNS_ZONE_VALID(zone));
REQUIRE(LOCKED_ZONE(zone));
@ -14480,6 +14480,9 @@ cleanup:
if (stub->zone != NULL) {
zone_idetach(&stub->zone);
}
if (cb_args != NULL) {
isc_mem_put(zone->mctx, cb_args, sizeof(*cb_args));
}
isc_mem_put(stub->mctx, stub, sizeof(*stub));
if (message != NULL) {
dns_message_detach(&message);