summaryrefslogtreecommitdiffstats
path: root/src/dbus/qdbusintegrator.cpp
diff options
context:
space:
mode:
authorIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2023-09-11 13:06:06 +0200
committerIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2023-09-18 15:50:43 +0200
commit178a5d15efdebd498dbc0633425a1790a93aac54 (patch)
tree5a25c8936ca40a353cfaf52863282035af7efb7e /src/dbus/qdbusintegrator.cpp
parenteacff46af4216d0482c304aaf3d0d2e69368feeb (diff)
QDBusConnectionPrivate: Protect access to serverConnectionNames with mutex
This list is accessed by ~QDBusServerConnection in a user thead. Task-number: QTBUG-116621 Change-Id: Ic115612b2a0f12fd9f69f38f4662dc36fffbf178 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus/qdbusintegrator.cpp')
-rw-r--r--src/dbus/qdbusintegrator.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index e0478d0d48..a6105d4403 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -306,7 +306,10 @@ static void qDBusNewConnection(DBusServer *server, DBusConnection *connection, v
manager->addConnection(
"QDBusServer-"_L1 + QString::number(reinterpret_cast<qulonglong>(newConnection), 16),
newConnection);
- serverConnection->serverConnectionNames << newConnection->name;
+ {
+ QWriteLocker locker(&serverConnection->lock);
+ serverConnection->serverConnectionNames << newConnection->name;
+ }
// setPeer does the error handling for us
QDBusErrorInternal error;