Hello community, here is the log from the commit of package bluez-qt for openSUSE:Factory checked in at 2016-10-28 12:15:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bluez-qt (Old) and /work/SRC/openSUSE:Factory/.bluez-qt.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bluez-qt" Changes: -------- --- /work/SRC/openSUSE:Factory/bluez-qt/bluez-qt.changes 2016-09-14 23:06:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.bluez-qt.new/bluez-qt.changes 2016-10-28 12:15:22.000000000 +0200 @@ -1,0 +2,8 @@ +Sun Oct 2 12:48:33 UTC 2016 - [email protected] + +- Update to 5.27.0 + * Fix crash when trying to add device to unknown adapter (kde#364416) + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.27.0.php + +------------------------------------------------------------------- Old: ---- bluez-qt-5.26.0.tar.xz New: ---- bluez-qt-5.27.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bluez-qt.spec ++++++ --- /var/tmp/diff_new_pack.XnSCCW/_old 2016-10-28 12:15:23.000000000 +0200 +++ /var/tmp/diff_new_pack.XnSCCW/_new 2016-10-28 12:15:23.000000000 +0200 @@ -18,9 +18,9 @@ %define sonum 6 %define _libname KF5BluezQt -%define _tar_path 5.26 +%define _tar_path 5.27 Name: bluez-qt -Version: 5.26.0 +Version: 5.27.0 Release: 0 Summary: Async Bluez wrapper library License: LGPL-2.1+ ++++++ bluez-qt-5.26.0.tar.xz -> bluez-qt-5.27.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.26.0/CMakeLists.txt new/bluez-qt-5.27.0/CMakeLists.txt --- old/bluez-qt-5.26.0/CMakeLists.txt 2016-09-06 00:09:50.000000000 +0200 +++ new/bluez-qt-5.27.0/CMakeLists.txt 2016-10-02 09:42:01.000000000 +0200 @@ -3,7 +3,7 @@ project(BluezQt) include(FeatureSummary) -find_package(ECM 5.26.0 NO_MODULE) +find_package(ECM 5.27.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) @@ -18,7 +18,7 @@ include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) -set(KF5_VERSION "5.26.0") # handled by release scripts +set(KF5_VERSION "5.27.0") # handled by release scripts ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX BLUEZQT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.26.0/autotests/managertest.cpp new/bluez-qt-5.27.0/autotests/managertest.cpp --- old/bluez-qt-5.26.0/autotests/managertest.cpp 2016-09-06 00:09:50.000000000 +0200 +++ new/bluez-qt-5.27.0/autotests/managertest.cpp 2016-10-02 09:42:01.000000000 +0200 @@ -409,4 +409,32 @@ delete manager; } +void ManagerTest::bug364416() +{ + // Bug 364416: Crash when device is added with adapter that is unknown to Manager + + FakeBluez::start(); + FakeBluez::runTest(QStringLiteral("bluez-standard")); + + Manager *manager = new Manager; + + InitManagerJob *job = manager->init(); + job->exec(); + + QVERIFY(!job->error()); + + // Add device to invalid adapter + QVariantMap deviceProps; + deviceProps[QStringLiteral("Path")] = QVariant::fromValue(QDBusObjectPath("/org/bluez/hci0/dev_40_79_6A_0C_39_75")); + deviceProps[QStringLiteral("Adapter")] = QVariant::fromValue(QDBusObjectPath(QStringLiteral("/org/bluez/hci0"))); + deviceProps[QStringLiteral("Address")] = QStringLiteral("40:79:6A:0C:39:75"); + deviceProps[QStringLiteral("Name")] = QStringLiteral("TestDevice"); + FakeBluez::runAction(QStringLiteral("devicemanager"), QStringLiteral("create-device"), deviceProps); + + // Wait for Manager to receive the interfacesAdded signal + QTest::qWait(100); + + delete manager; +} + QTEST_MAIN(ManagerTest) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.26.0/autotests/managertest.h new/bluez-qt-5.27.0/autotests/managertest.h --- old/bluez-qt-5.26.0/autotests/managertest.h 2016-09-06 00:09:50.000000000 +0200 +++ new/bluez-qt-5.27.0/autotests/managertest.h 2016-10-02 09:42:01.000000000 +0200 @@ -40,6 +40,7 @@ void usableAdapterTest(); void deviceForAddressTest(); void adapterWithDevicesRemovedTest(); + void bug364416(); }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.26.0/src/debug.cpp new/bluez-qt-5.27.0/src/debug.cpp --- old/bluez-qt-5.26.0/src/debug.cpp 2016-09-06 00:09:50.000000000 +0200 +++ new/bluez-qt-5.27.0/src/debug.cpp 2016-10-02 09:42:01.000000000 +0200 @@ -22,9 +22,5 @@ #include "debug.h" -#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) // logging category for this framework, default: log stuff >= warning Q_LOGGING_CATEGORY(BLUEZQT, "BluezQt", QtWarningMsg) -#else -Q_LOGGING_CATEGORY(BLUEZQT, "BluezQt") -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.26.0/src/manager_p.cpp new/bluez-qt-5.27.0/src/manager_p.cpp --- old/bluez-qt-5.26.0/src/manager_p.cpp 2016-09-06 00:09:50.000000000 +0200 +++ new/bluez-qt-5.27.0/src/manager_p.cpp 2016-10-02 09:42:01.000000000 +0200 @@ -353,7 +353,10 @@ void ManagerPrivate::addDevice(const QString &devicePath, const QVariantMap &properties) { AdapterPtr adapter = m_adapters.value(properties.value(QStringLiteral("Adapter")).value<QDBusObjectPath>().path()); - Q_ASSERT(adapter); + if (!adapter) { + return; + } + DevicePtr device = DevicePtr(new Device(devicePath, properties, adapter)); device->d->q = device.toWeakRef(); m_devices.insert(devicePath, device); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.26.0/tests/chatprofile.h new/bluez-qt-5.27.0/tests/chatprofile.h --- old/bluez-qt-5.26.0/tests/chatprofile.h 2016-09-06 00:09:50.000000000 +0200 +++ new/bluez-qt-5.27.0/tests/chatprofile.h 2016-10-02 09:42:01.000000000 +0200 @@ -33,12 +33,12 @@ public: explicit ChatProfile(QObject *parent); - QDBusObjectPath objectPath() const; - QString uuid() const; + QDBusObjectPath objectPath() const Q_DECL_OVERRIDE; + QString uuid() const Q_DECL_OVERRIDE; - void newConnection(BluezQt::DevicePtr device, const QDBusUnixFileDescriptor &fd, const QVariantMap &properties, const BluezQt::Request<> &request); - void requestDisconnection(BluezQt::DevicePtr device, const BluezQt::Request<> &request); - void release(); + void newConnection(BluezQt::DevicePtr device, const QDBusUnixFileDescriptor &fd, const QVariantMap &properties, const BluezQt::Request<> &request) Q_DECL_OVERRIDE; + void requestDisconnection(BluezQt::DevicePtr device, const BluezQt::Request<> &request) Q_DECL_OVERRIDE; + void release() Q_DECL_OVERRIDE; private Q_SLOTS: void socketReadyRead();
