From 67f466505e1aed6b7f87e766141d081146b4159c Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 31 May 2016 17:33:03 -0300 Subject: Fix some QtDBus crashes during application destruction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's possible that some code executes after QDBusConnectionManager is destroyed and still tries to access QtDBus. Protect against such crashes. Change-Id: I87e17314d8b24ae983b1fffd1453c13fbd3cf48e Reviewed-by: René J.V. Bertin Reviewed-by: Alex Blasche Reviewed-by: Oswald Buddenhagen --- src/dbus/qdbusintegrator.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/dbus/qdbusintegrator.cpp') diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index 2140f7cd82..e1e588b850 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -299,6 +299,9 @@ static void qDBusNewConnection(DBusServer *server, DBusConnection *connection, v Q_ASSERT(connection); Q_ASSERT(data); + if (!QDBusConnectionManager::instance()) + return; + // keep the connection alive q_dbus_connection_ref(connection); QDBusConnectionPrivate *serverConnection = static_cast(data); -- cgit v1.2.3