bind/backport-0031-Update-init_count-atomically-to-silence-tsan-errors.patch
jiangheng ad37c37958 backport some patches from community
(cherry picked from commit a9fd9ece9b9436b6103d084920c6897ef1adbae6)
2022-09-03 21:36:21 +08:00

46 lines
1.7 KiB
Diff

From ca0c1e5b4bbd57060321d7afe2d606227fbe358a Mon Sep 17 00:00:00 2001
From: Mark Andrews <marka@isc.org>
Date: Thu, 20 Aug 2020 11:24:05 +1000
Subject: [PATCH] Update 'init_count' atomically to silence tsan errors.
Conflict: NA
Reference: https://gitlab.isc.org/isc-projects/bind9/-/commit/ca0c1e5b4bbd57060321d7afe2d606227fbe358a
---
lib/dns/rbtdb.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c
index baf764174a..88c39bf714 100644
--- a/lib/dns/rbtdb.c
+++ b/lib/dns/rbtdb.c
@@ -6839,7 +6839,7 @@ addrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
newheader->attributes |= RDATASET_ATTR_ZEROTTL;
newheader->noqname = NULL;
newheader->closest = NULL;
- newheader->count = init_count++;
+ newheader->count = isc_atomic_xadd((int32_t*)&init_count, 1);
newheader->trust = rdataset->trust;
newheader->additional_auth = NULL;
newheader->additional_glue = NULL;
@@ -7035,7 +7035,7 @@ subtractrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
newheader->trust = 0;
newheader->noqname = NULL;
newheader->closest = NULL;
- newheader->count = init_count++;
+ newheader->count = isc_atomic_xadd((int32_t*)&init_count, 1);
newheader->additional_auth = NULL;
newheader->additional_glue = NULL;
newheader->last_used = 0;
@@ -7481,7 +7481,7 @@ loading_addrdataset(void *arg, dns_name_t *name, dns_rdataset_t *rdataset) {
newheader->serial = 1;
newheader->noqname = NULL;
newheader->closest = NULL;
- newheader->count = init_count++;
+ newheader->count = isc_atomic_xadd((int32_t*)&init_count, 1);
newheader->additional_auth = NULL;
newheader->additional_glue = NULL;
newheader->last_used = 0;
--
2.23.0