diff options
author | Harald Fernengel <harald.fernengel@nokia.com> | 2011-07-07 15:31:19 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-07-07 16:10:50 +0200 |
commit | f96a19d1b474292940dab3a20194a88395aca8ed (patch) | |
tree | 68952e1c5ae59b80dd9d4c239ced062b3a61ef3b /src | |
parent | f4c07fe72168778cd6ea5a6c07fb6add91b2e3d0 (diff) |
Fix a crash when D-Bus library can't be loaded
In certain sandboxes, we have libQtDBus, but not D-Bus. QtDBus shouldn't
crash in that case, but return non-working QDBusConnection instances
instead.
Change-Id: Ia4ac78d1197bae50cde0cf07e6fc66fc25b85011
Reviewed-on: http://codereview.qt.nokia.com/1319
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Robert Griebl <robert.griebl@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/dbus/qdbus_symbols.cpp | 6 | ||||
-rw-r--r-- | src/dbus/qdbusconnection.cpp | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/dbus/qdbus_symbols.cpp b/src/dbus/qdbus_symbols.cpp index 44597c39b6..fed18350bb 100644 --- a/src/dbus/qdbus_symbols.cpp +++ b/src/dbus/qdbus_symbols.cpp @@ -62,6 +62,12 @@ void qdbus_unloadLibDBus() bool qdbus_loadLibDBus() { +#ifdef QT_BUILD_INTERNAL + // this is to simulate a library load failure for our autotest suite. + if (!qgetenv("QT_SIMULATE_DBUS_LIBFAIL").isEmpty()) + return false; +#endif + static volatile bool triedToLoadLibrary = false; #ifndef QT_NO_THREAD QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&qdbus_resolve_me)); diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index 0b4133c8dd..9656903846 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -1061,7 +1061,7 @@ public: if (!instance) { qWarning("QDBusConnection: %s D-Bus connection created before QCoreApplication. Application may misbehave.", type == SessionBus ? "session" : type == SystemBus ? "system" : "generic"); - } else { + } else if (QDBusConnectionPrivate::d(*this)) { QDBusConnectionPrivate::d(*this)->moveToThread(instance->thread()); } } |