mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
Merge branch '2095-shifting-large-rcode-in-dns-message-c-results-in-undefined-behaviour' into 'main'
Resolve "Shifting large rcode in dns/message.c results in undefined behaviour" Closes #2095 See merge request isc-projects/bind9!4011
This commit is contained in:
commit
2164b6926f
1 changed files with 3 additions and 2 deletions
|
|
@ -2268,10 +2268,11 @@ dns_message_renderend(dns_message_t *msg) {
|
|||
dns_message_renderrelease(msg, msg->opt_reserved);
|
||||
msg->opt_reserved = 0;
|
||||
/*
|
||||
* Set the extended rcode.
|
||||
* Set the extended rcode. Cast msg->rcode to dns_ttl_t
|
||||
* so that we do a unsigned shift.
|
||||
*/
|
||||
msg->opt->ttl &= ~DNS_MESSAGE_EDNSRCODE_MASK;
|
||||
msg->opt->ttl |= ((msg->rcode << 20) &
|
||||
msg->opt->ttl |= (((dns_ttl_t)(msg->rcode) << 20) &
|
||||
DNS_MESSAGE_EDNSRCODE_MASK);
|
||||
/*
|
||||
* Render.
|
||||
|
|
|
|||
Loading…
Reference in a new issue