From 7f30540727cf8f51a9b25f0357780aea837e83cc Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Fri, 2 Aug 2019 07:58:36 +1000 Subject: [PATCH] prevent TSAN being trigged when DNS_RBTFIND_EMPTYDATA is set --- lib/dns/rbt.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/dns/rbt.c b/lib/dns/rbt.c index b0e5a2c6e62..29a61fa3b65 100644 --- a/lib/dns/rbt.c +++ b/lib/dns/rbt.c @@ -1652,9 +1652,11 @@ dns_rbt_findnode(dns_rbt_t *rbt, const dns_name_t *name, dns_name_t *foundname, /* * This might be the closest enclosing name. */ - if (DATA(current) != NULL || - (options & DNS_RBTFIND_EMPTYDATA) != 0) + if ((options & DNS_RBTFIND_EMPTYDATA) != 0 || + DATA(current) != NULL) + { *node = current; + } /* * Point the chain to the next level. This @@ -1725,8 +1727,8 @@ dns_rbt_findnode(dns_rbt_t *rbt, const dns_name_t *name, dns_name_t *foundname, * ISC_R_SUCCESS to indicate an exact match. */ if (current != NULL && (options & DNS_RBTFIND_NOEXACT) == 0 && - (DATA(current) != NULL || - (options & DNS_RBTFIND_EMPTYDATA) != 0)) { + ((options & DNS_RBTFIND_EMPTYDATA) != 0 || DATA(current) != NULL)) + { /* * Found an exact match. */ -- GitLab