qt5base-lts/src/dbus
Ievgenii Meshcheriakov 24e504d9df QDBusConnectionPrivate: Fix race in sendWithReply()
The message processing may finish before watcherHelper is
setup. Use locking and an additional check for message
processing completion to avoid the race condition.

Move the code to new function inside QDBusPendingCallPrivate,
close to where the waiting without GUI is done.

Add assertions that check that watcherHelper is not overwritten.

Change-Id: I24e54598135edf293c41b3a80369b0a3b46f775c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-09-22 21:02:45 +02:00
..
doc Doc: All overviews list categorization 2023-09-11 15:26:56 +02:00
CMakeLists.txt QDBusConnectionManager: Move to a separate source file 2023-08-21 12:18:33 +02:00
dbus_minimal_p.h dbus_minimal_p.h: copy the libdbus-1 copyright to the top 2022-10-10 11:19:55 -07:00
LIBDBUS-1-LICENSE.txt Document libdbus-1 code in Qt D-Bus 2018-04-20 06:45:12 +00:00
qdbus_symbols_p.h QtDBus: Resolve libdbus functions in a thread-safe way 2023-09-14 11:50:28 +02:00
qdbus_symbols.cpp qdbus_symbols: Make major version list contexpr 2023-09-12 16:21:20 +02:00
qdbusabstractadaptor_p.h Remove more unused qreadwritelock.h includes 2022-05-17 18:49:31 +02:00
qdbusabstractadaptor.cpp QDBusAdaptorConnector: Initialize cached index in a thread safe way 2023-08-18 15:22:42 +02:00
qdbusabstractadaptor.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusabstractinterface_p.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusabstractinterface.cpp QtDBus: Remove uses of Q_UNUSED on used variables 2023-09-11 00:32:40 +02:00
qdbusabstractinterface.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusargument_p.h QDBusArgumentPrivate: Disable copy and move, make constructor protected 2023-09-14 11:50:46 +02:00
qdbusargument.cpp QDBusArgumentPrivate: Specify direction as argument to constructor 2023-09-14 11:50:24 +02:00
qdbusargument.h Fix spelling of D-Bus in the source code 2023-07-06 21:51:29 +02:00
qdbusconnection_p.h QDBusConnection: Print error from prepareHook 2023-09-17 23:39:04 +02:00
qdbusconnection.cpp QDBusConnectionManager: Move all locking inside the class 2023-08-22 16:26:02 +02:00
qdbusconnection.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusconnectioninterface.cpp Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusconnectioninterface.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusconnectionmanager_p.h QtDBus: Use invokeMethod accepting member functions with arguments 2023-08-26 17:24:19 +02:00
qdbusconnectionmanager.cpp QtDBus: Use invokeMethod accepting member functions with arguments 2023-08-26 17:24:19 +02:00
qdbuscontext_p.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbuscontext.cpp Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbuscontext.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusdemarshaller.cpp Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbuserror.cpp QDBusError: don't refer to a QT_NAMESPACE'ed get() as ::get() 2023-03-05 21:57:21 +01:00
qdbuserror.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusextratypes.cpp Docs: adjust docs after the QLatin1String to QLatin1StringView rename 2023-01-05 14:46:38 +02:00
qdbusextratypes.h Fix spelling of D-Bus in the source code 2023-07-06 21:51:29 +02:00
qdbusintegrator_p.h QDBus: Use type-safe object tree node flags 2023-09-11 00:32:40 +02:00
qdbusintegrator.cpp QDBusConnectionPrivate: Fix race in sendWithReply() 2023-09-22 21:02:45 +02:00
qdbusinterface_p.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusinterface.cpp Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusinterface.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusinternalfilters.cpp QDBus: Make QObject * argument to generateSubObjectXml() const 2023-08-10 19:45:51 +02:00
qdbusintrospection_p.h Remove redundant QPair includes 2023-09-06 17:24:40 +00:00
qdbusintrospection.cpp QDBusIntrospection: Pass diagnostics reporter to parser 2023-07-06 21:51:18 +02:00
qdbusmarshaller.cpp QDBusArgumentPrivate: Specify direction as argument to constructor 2023-09-14 11:50:24 +02:00
qdbusmessage_p.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusmessage.cpp QtDBus: Convert some loops to ranged for loops 2023-05-15 14:02:47 +02:00
qdbusmessage.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusmetaobject_p.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusmetaobject.cpp Revert "QDbus: Avoid memory leak in registerComplexDBusType" 2023-08-11 22:30:30 +02:00
qdbusmetatype_p.h QtDBus: Convert QDBusMetaTypeId into namespace 2023-05-04 15:05:17 +02:00
qdbusmetatype.cpp QDBusArgumentPrivate::createSignature: Accept QMetaType as argument 2023-09-12 16:21:00 +02:00
qdbusmetatype.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusmisc.cpp QDBus: Transform fallback interface names according to the spec 2023-06-20 19:53:47 +02:00
qdbuspendingcall_p.h QDBusConnectionPrivate: Fix race in sendWithReply() 2023-09-22 21:02:45 +02:00
qdbuspendingcall.cpp QDBusConnectionPrivate: Fix race in sendWithReply() 2023-09-22 21:02:45 +02:00
qdbuspendingcall.h QDBusPendingCall: Remove private slot 2023-08-28 22:03:02 +02:00
qdbuspendingreply.cpp Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbuspendingreply.h Replace usages of Q_CLANG_QDOC with Q_QDOC 2022-10-21 09:48:36 +02:00
qdbusreply.cpp Port from container.count()/length() to size() 2022-10-04 07:40:08 +02:00
qdbusreply.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusserver.cpp QDBusServer: Remove private slot 2023-08-28 22:03:03 +02:00
qdbusserver.h QDBusServer: Remove private slot 2023-08-28 22:03:03 +02:00
qdbusservicewatcher.cpp QDBusServiceWatcher: fix binding loops 2023-09-03 18:21:18 +02:00
qdbusservicewatcher.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusthreaddebug_p.h Mark all remaining RAII/smart pointer class ctors [[nodiscard]] 2023-06-22 16:20:10 +00:00
qdbusunixfiledescriptor.cpp Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusunixfiledescriptor.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusutil_p.h Remove perl related functionality from CMake files 2022-11-29 12:35:47 +01:00
qdbusutil.cpp QtMiscUtils: add some more character helpers 2023-02-07 20:04:11 +02:00
qdbusvirtualobject.cpp Fix typos in docs and comments 2022-06-15 21:31:02 +02:00
qdbusvirtualobject.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qdbusxmlgenerator.cpp QDBus: Remove commented out code 2023-06-20 15:39:14 +02:00
qdbusxmlparser_p.h QDBus: Add diagnostics reporting interface 2023-07-06 21:51:08 +02:00
qdbusxmlparser.cpp QDBusXmlParser: downgrade property name mismatches to warnings 2023-08-01 21:52:55 -07:00
Qt6DBusMacros.cmake Remove the Unnecessary CMake Module, include(CMakeParseArguments) 2022-10-25 20:14:35 +02:00
qt_attribution.json Deploy Comment fields in qt_attribution.json files 2023-04-20 14:17:26 +01:00
qtdbusglobal_p.h Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qtdbusglobal.h Do not generate the deprecated 'QtDBus/qdbusmacros.h' 2023-07-06 21:22:43 +02:00