summaryrefslogtreecommitdiffstats
path: root/src/dbus
diff options
context:
space:
mode:
authorIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2023-09-08 14:16:14 +0200
committerIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2023-09-11 15:26:56 +0200
commit7e3d29f618f4fb1464327abca49a33cb00a3ac91 (patch)
tree2c469331f4154f4ff360b3f71c9de25f7bb47f14 /src/dbus
parent9ff099e9661ec75f997e334a4f2bbed3ace4a91c (diff)
QDBusConnectionPrivate: Use write lock inside handleSignal()
Slots like (un)registerServiceNoLock() modify shared state and should be run with write lock taken. Having only read lock results in hard to reproduce crashes. Task-number: QTBUG-116621 Change-Id: I4456b64f9f2200378012822143e1a05345859d62 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus')
-rw-r--r--src/dbus/qdbusintegrator.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index da5affe7ed..c61ca27b5d 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -1656,7 +1656,7 @@ void QDBusConnectionPrivate::handleSignal(const QDBusMessage& msg)
key += u':';
key += msg.interface();
- QDBusReadLocker locker(HandleSignalAction, this);
+ QDBusWriteLocker locker(HandleSignalAction, this);
handleSignal(key, msg); // one try
key.truncate(msg.member().size() + 1); // keep the ':'