From: Remi Gacogne Date: Thu, 8 Feb 2024 14:58:38 +0000 (+0100) Subject: dnsdist: Fix an issue spotted by TSAN: we need to use atomic_load_explicit along... X-Git-Tag: dnsdist-1.9.0~6^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=41f08f9fb802d10b1481817d59135ab15279792e;p=thirdparty%2Fpdns.git dnsdist: Fix an issue spotted by TSAN: we need to use atomic_load_explicit along with atomic_store_explicit --- diff --git a/pdns/dnsdistdist/doh3.cc b/pdns/dnsdistdist/doh3.cc index c6b6f4c2df..a223364808 100644 --- a/pdns/dnsdistdist/doh3.cc +++ b/pdns/dnsdistdist/doh3.cc @@ -438,7 +438,8 @@ static std::optional> createConnection(DOH3 quiche_conn_set_keylog_path(quicheConn.get(), config.df->d_quicheParams.d_keyLogFile.c_str()); } - auto conn = H3Connection(peer, config.config, std::move(quicheConn)); + auto quicheConfig = std::atomic_load_explicit(&config.config, std::memory_order_acquire); + auto conn = H3Connection(peer, quicheConfig, std::move(quicheConn)); auto pair = config.d_connections.emplace(serverSideID, std::move(conn)); return pair.first->second; } diff --git a/pdns/dnsdistdist/doq.cc b/pdns/dnsdistdist/doq.cc index 4ac7267f0b..b3de74ee9b 100644 --- a/pdns/dnsdistdist/doq.cc +++ b/pdns/dnsdistdist/doq.cc @@ -355,7 +355,8 @@ static std::optional> createConnection(DOQSer quiche_conn_set_keylog_path(quicheConn.get(), config.df->d_quicheParams.d_keyLogFile.c_str()); } - auto conn = Connection(peer, config.config, std::move(quicheConn)); + auto quicheConfig = std::atomic_load_explicit(&config.config, std::memory_order_acquire); + auto conn = Connection(peer, quicheConfig, std::move(quicheConn)); auto pair = config.d_connections.emplace(serverSideID, std::move(conn)); return pair.first->second; }