From: Evan Hunt Date: Sun, 23 Mar 2025 20:45:04 +0000 (-0700) Subject: dns_message_gettemp*() resets objects X-Git-Tag: v9.21.7~19^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db8c11ea0b311cb4440330bc539a97c091b2d3bd;p=thirdparty%2Fbind9.git dns_message_gettemp*() resets objects callers of dns_message_gettemprdata() and dns_message_getrdatalist() initialize the objects after retrieving them. this is no longer necessary. --- diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index 954fbdd2e73..440c3a5c2b7 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -2101,11 +2101,9 @@ insert_soa(dig_lookup_t *lookup) { &soa, &lookup->rdatabuf); check_result(result, "isc_rdata_fromstruct"); - dns_message_gettemprdatalist(lookup->sendmsg, &rdatalist); - dns_message_gettemprdataset(lookup->sendmsg, &rdataset); - dns_rdatalist_init(rdatalist); + dns_message_gettemprdatalist(lookup->sendmsg, &rdatalist); rdatalist->type = dns_rdatatype_soa; rdatalist->rdclass = lookup->rdclass; ISC_LIST_APPEND(rdatalist->rdata, rdata, link); diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c index f09c74db0b7..638024d793d 100644 --- a/bin/nsupdate/nsupdate.c +++ b/bin/nsupdate/nsupdate.c @@ -1436,8 +1436,6 @@ make_prereq(char *cmdline, bool ispositive, bool isrrset) { dns_message_gettemprdata(updatemsg, &rdata); - dns_rdata_init(rdata); - if (isrrset && ispositive) { retval = parse_rdata(&cmdline, rdataclass, rdatatype, updatemsg, rdata); @@ -1917,8 +1915,6 @@ update_addordelete(char *cmdline, bool isdelete) { dns_message_gettemprdata(updatemsg, &rdata); - dns_rdata_init(rdata); - /* * If this is an add, read the TTL and verify that it's in range. * If it's a delete, ignore a TTL if present (for compatibility). diff --git a/lib/dns/message.c b/lib/dns/message.c index 42ce913162d..b5268f1ce0c 100644 --- a/lib/dns/message.c +++ b/lib/dns/message.c @@ -319,6 +319,7 @@ newrdata(dns_message_t *msg) { rdata = ISC_LIST_HEAD(msg->freerdata); if (rdata != NULL) { ISC_LIST_UNLINK(msg->freerdata, rdata, link); + dns_rdata_reset(rdata); return rdata; } @@ -349,6 +350,7 @@ newrdatalist(dns_message_t *msg) { rdatalist = ISC_LIST_HEAD(msg->freerdatalist); if (rdatalist != NULL) { ISC_LIST_UNLINK(msg->freerdatalist, rdatalist, link); + dns_rdatalist_init(rdatalist); goto out; } @@ -2790,7 +2792,6 @@ dns_message_setquerytsig(dns_message_t *msg, isc_buffer_t *querytsig) { isc_buffer_allocate(msg->mctx, &buf, r.length); isc_buffer_putmem(buf, r.base, r.length); isc_buffer_usedregion(buf, &r); - dns_rdata_init(rdata); dns_rdata_fromregion(rdata, dns_rdataclass_any, dns_rdatatype_tsig, &r); dns_message_takebuffer(msg, &buf); ISC_LIST_APPEND(list->rdata, rdata, link); diff --git a/lib/dns/xfrin.c b/lib/dns/xfrin.c index 8122fde4e02..294bdb0f47f 100644 --- a/lib/dns/xfrin.c +++ b/lib/dns/xfrin.c @@ -1517,11 +1517,9 @@ tuple2msgname(dns_difftuple_t *tuple, dns_message_t *msg, dns_name_t **target) { REQUIRE(target != NULL && *target == NULL); dns_message_gettemprdata(msg, &rdata); - dns_rdata_init(rdata); dns_rdata_clone(&tuple->rdata, rdata); dns_message_gettemprdatalist(msg, &rdl); - dns_rdatalist_init(rdl); rdl->type = tuple->rdata.type; rdl->rdclass = tuple->rdata.rdclass; rdl->ttl = tuple->ttl; diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 5e054459a29..00f7a9e6352 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -15476,7 +15476,6 @@ notify_createmessage(dns_zone_t *zone, unsigned int flags, isc_buffer_allocate(zone->mctx, &b, r.length); isc_buffer_putmem(b, r.base, r.length); isc_buffer_usedregion(b, &r); - dns_rdata_init(temprdata); dns_rdata_fromregion(temprdata, rdata.rdclass, rdata.type, &r); dns_message_takebuffer(message, &b); result = dns_rdataset_next(&rdataset); diff --git a/lib/ns/query.c b/lib/ns/query.c index 1a2ee677c4b..23f3d11cf47 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -8264,7 +8264,6 @@ query_dns64(query_ctx_t *qctx) { dns_message_gettemprdataset(client->message, &dns64_rdataset); dns_message_gettemprdatalist(client->message, &dns64_rdatalist); - dns_rdatalist_init(dns64_rdatalist); dns64_rdatalist->rdclass = dns_rdataclass_in; dns64_rdatalist->type = dns_rdatatype_aaaa; if (client->query.dns64_ttl != UINT32_MAX) { @@ -8309,7 +8308,6 @@ query_dns64(query_ctx_t *qctx) { isc_buffer_remainingregion(buffer, &r); isc_buffer_forward(buffer, 16); dns_message_gettemprdata(client->message, &dns64_rdata); - dns_rdata_init(dns64_rdata); dns_rdata_fromregion(dns64_rdata, dns_rdataclass_in, dns_rdatatype_aaaa, &r); ISC_LIST_APPEND(dns64_rdatalist->rdata, dns64_rdata, @@ -8425,7 +8423,6 @@ query_filter64(query_ctx_t *qctx) { dns_message_gettemprdataset(client->message, &myrdataset); dns_message_gettemprdatalist(client->message, &myrdatalist); - dns_rdatalist_init(myrdatalist); myrdatalist->rdclass = dns_rdataclass_in; myrdatalist->type = dns_rdatatype_aaaa; myrdatalist->ttl = qctx->rdataset->ttl; diff --git a/lib/ns/xfrout.c b/lib/ns/xfrout.c index 96012fdccd4..6df1b20559a 100644 --- a/lib/ns/xfrout.c +++ b/lib/ns/xfrout.c @@ -1544,7 +1544,6 @@ sendstream(xfrout_ctx_t *xfr) { isc_buffer_availableregion(&xfr->buf, &r); r.length = rdata->length; isc_buffer_putmem(&xfr->buf, rdata->data, rdata->length); - dns_rdata_init(msgrdata); dns_rdata_fromregion(msgrdata, rdata->rdclass, rdata->type, &r); dns_message_gettemprdatalist(msg, &msgrdl);