mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-13 21:09:59 -04:00
4210. [cleanup] Silence use after free false positive. [RT #40743]
(cherry picked from commit f43e5c8ed2)
This commit is contained in:
parent
f81faf7001
commit
de8a5c0d3b
2 changed files with 10 additions and 11 deletions
2
CHANGES
2
CHANGES
|
|
@ -1,3 +1,5 @@
|
|||
4210. [cleanup] Silence use after free false positive. [RT #40743]
|
||||
|
||||
4209. [bug] Address resource leaks in dlz modules. [RT #40654]
|
||||
|
||||
4208. [bug] Address null pointer dereferences on out of memory.
|
||||
|
|
|
|||
|
|
@ -1288,6 +1288,7 @@ getsection(isc_buffer_t *source, dns_message_t *msg, dns_decompress_t *dctx,
|
|||
* it must be the first OPT we've seen.
|
||||
*/
|
||||
if (!dns_name_equal(dns_rootname, name) ||
|
||||
sectionid != DNS_SECTION_ADDITIONAL ||
|
||||
msg->opt != NULL)
|
||||
DO_FORMERR;
|
||||
skip_name_search = ISC_TRUE;
|
||||
|
|
@ -1525,9 +1526,12 @@ getsection(isc_buffer_t *source, dns_message_t *msg, dns_decompress_t *dctx,
|
|||
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
|
||||
|
||||
/*
|
||||
* If this is an OPT record, remember it. Also, set
|
||||
* the extended rcode. Note that msg->opt will only be set
|
||||
* if best-effort parsing is enabled.
|
||||
* If this is an OPT, SIG(0) or TSIG record, remember it.
|
||||
* Also, set the extended rcode for TSIG.
|
||||
*
|
||||
* Note msg->opt, msg->sig0 and msg->tsig will only be
|
||||
* already set if best-effort parsing is enabled otherwise
|
||||
* there will only be at most one of each.
|
||||
*/
|
||||
if (rdtype == dns_rdatatype_opt && msg->opt == NULL) {
|
||||
dns_rcode_t ercode;
|
||||
|
|
@ -1541,14 +1545,7 @@ getsection(isc_buffer_t *source, dns_message_t *msg, dns_decompress_t *dctx,
|
|||
msg->rcode |= ercode;
|
||||
isc_mempool_put(msg->namepool, name);
|
||||
free_name = ISC_FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* If this is an SIG(0) or TSIG record, remember it. Note
|
||||
* that msg->sig0 or msg->tsig will only be set if best-effort
|
||||
* parsing is enabled.
|
||||
*/
|
||||
if (issigzero && msg->sig0 == NULL) {
|
||||
} else if (issigzero && msg->sig0 == NULL) {
|
||||
msg->sig0 = rdataset;
|
||||
msg->sig0name = name;
|
||||
rdataset = NULL;
|
||||
|
|
|
|||
Loading…
Reference in a new issue