2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 14:07:59 +00:00

Merge branch '4493-data-race-in-xfrin_send_request' into 'main'

Resolve "ThreadSanitizer: data race xfrin.c:1555:2 in xfrin_send_request"

Closes #4493

See merge request isc-projects/bind9!8579
This commit is contained in:
Arаm Sаrgsyаn
2023-12-18 08:44:33 +00:00
2 changed files with 10 additions and 6 deletions

View File

@@ -1,3 +1,7 @@
6301. [bug] Fix data races with atomic members of the xfrin
structure in xfrin_start() and xfrin_send_request()
functions. [GL #4493]
6300. [bug] Fix statistics export to use full 64 bit signed numbers
instead of truncating values to unsigned 32 bits.
[GL #4467]

View File

@@ -1260,8 +1260,8 @@ xfrin_start(dns_xfrin_t *xfr) {
* The "SOA before" mode is used, where the SOA request is
* using the same transport as the XFR.
*/
atomic_init(&xfr->soa_transport_type,
dns_xfrin_gettransporttype(xfr));
atomic_store_relaxed(&xfr->soa_transport_type,
dns_xfrin_gettransporttype(xfr));
}
/* Set the maximum timer */
@@ -1552,10 +1552,10 @@ xfrin_send_request(dns_xfrin_t *xfr) {
CHECK(add_opt(msg, udpsize, reqnsid, reqexpire));
}
atomic_init(&xfr->nmsg, 0);
atomic_init(&xfr->nrecs, 0);
atomic_init(&xfr->nbytes, 0);
atomic_init(&xfr->start, isc_time_now());
atomic_store_relaxed(&xfr->nmsg, 0);
atomic_store_relaxed(&xfr->nrecs, 0);
atomic_store_relaxed(&xfr->nbytes, 0);
atomic_store_relaxed(&xfr->start, isc_time_now());
msg->id = xfr->id;
if (xfr->tsigctx != NULL) {