diff options
author | Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> | 2023-09-08 14:16:14 +0200 |
---|---|---|
committer | Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> | 2023-09-11 15:26:56 +0200 |
commit | 7e3d29f618f4fb1464327abca49a33cb00a3ac91 (patch) | |
tree | 2c469331f4154f4ff360b3f71c9de25f7bb47f14 /src/dbus | |
parent | 9ff099e9661ec75f997e334a4f2bbed3ace4a91c (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.cpp | 2 |
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 ':' |