From ae5dd04b5a60bde4e23ac2e7c27633e1762c7c60 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 6 Jun 2025 20:19:53 +0200 Subject: [PATCH] QSocks5SocketEngine: don't depend on zero-initialization of QBasicAtomic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's unclear¹ whether static zero-initialization of a static QBasicAtomic actually initializes the object with a zero value, or whether it remains default-constructed (without a value until a following call to std::atomic_init gives it one). Play it safe and use Q_BASIC_ATOMIC_INITIALIZER(0) to dodge any issues the old code may have had. ¹ see ongoing discussion on the Jira ticket Amends 04d6495bf773a6bb0d4fa6980df22d3b81a605b0. Task-number: QTBUG-137465 Pick-to: 6.8 6.5 Change-Id: Iee0d75ce10a589390afdd9069b7040a1c9c608e1 Reviewed-by: Thiago Macieira (cherry picked from commit e4b0549a4c3f55828488fad6e6f5723072d6a291) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 6b77b43b1a231dc0aafad15fb3220e86c6787eea) --- src/network/socket/qsocks5socketengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/socket/qsocks5socketengine.cpp b/src/network/socket/qsocks5socketengine.cpp index f6dc0c6855e..d569dcc0947 100644 --- a/src/network/socket/qsocks5socketengine.cpp +++ b/src/network/socket/qsocks5socketengine.cpp @@ -966,7 +966,7 @@ QSocks5SocketEngine::~QSocks5SocketEngine() static int nextDescriptor() { - static QBasicAtomicInt counter; + Q_CONSTINIT static QBasicAtomicInt counter = Q_BASIC_ATOMIC_INITIALIZER(0); return 1 + counter.fetchAndAddRelaxed(1); }