Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-connectivity for 
openSUSE:Factory checked in at 2026-05-28 17:24:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-connectivity (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-connectivity.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-connectivity"

Thu May 28 17:24:32 2026 rev:39 rq:1355415 version:6.11.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-connectivity/qt6-connectivity.changes        
2026-03-28 20:12:45.075937599 +0100
+++ 
/work/SRC/openSUSE:Factory/.qt6-connectivity.new.1937/qt6-connectivity.changes  
    2026-05-28 17:25:12.839434322 +0200
@@ -1,0 +2,6 @@
+Thu May 14 14:54:40 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.11.1
+  https://www.qt.io/blog/qt-6.11.1-released
+
+-------------------------------------------------------------------

Old:
----
  qtconnectivity-everywhere-src-6.11.0.tar.xz

New:
----
  qtconnectivity-everywhere-src-6.11.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-connectivity.spec ++++++
--- /var/tmp/diff_new_pack.N80lQ6/_old  2026-05-28 17:25:13.799474061 +0200
+++ /var/tmp/diff_new_pack.N80lQ6/_new  2026-05-28 17:25:13.803474227 +0200
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.11.0
+%define real_version 6.11.1
 %define short_version 6.11
 %define tar_name qtconnectivity-everywhere-src
 %define tar_suffix %{nil}
@@ -30,7 +30,7 @@
 %global __requires_exclude qt6qmlimport\\((HeartRateGame|NdefEditor.*)\\)
 #
 Name:           qt6-connectivity%{?pkg_suffix}
-Version:        6.11.0
+Version:        6.11.1
 Release:        0
 Summary:        Qt 6 connectivity tools and libraries
 License:        GPL-2.0-only OR LGPL-3.0-only OR GPL-3.0-only

++++++ qtconnectivity-everywhere-src-6.11.0.tar.xz -> 
qtconnectivity-everywhere-src-6.11.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtconnectivity-everywhere-src-6.11.0/.cmake.conf 
new/qtconnectivity-everywhere-src-6.11.1/.cmake.conf
--- old/qtconnectivity-everywhere-src-6.11.0/.cmake.conf        2026-03-10 
06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/.cmake.conf        2026-05-08 
03:18:46.000000000 +0200
@@ -1,6 +1,7 @@
-set(QT_REPO_MODULE_VERSION "6.11.0")
+set(QT_REPO_MODULE_VERSION "6.11.1")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES
+    "QT_NO_CONTEXTLESS_CONNECT=1"
     "QT_NO_FOREACH=1"
     "QT_NO_QASCONST=1"
     "QT_NO_QSNPRINTF=1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtconnectivity-everywhere-src-6.11.0/.tag 
new/qtconnectivity-everywhere-src-6.11.1/.tag
--- old/qtconnectivity-everywhere-src-6.11.0/.tag       2026-03-10 
06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/.tag       2026-05-08 
03:18:46.000000000 +0200
@@ -1 +1 @@
-102a73c48c97b503d33add4a95b0cdf8d1363740
+933e87d8a0ceda506d384b097276336faf995e9f
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/coin/axivion/start_analysis.sh 
new/qtconnectivity-everywhere-src-6.11.1/coin/axivion/start_analysis.sh
--- old/qtconnectivity-everywhere-src-6.11.0/coin/axivion/start_analysis.sh     
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/coin/axivion/start_analysis.sh     
2026-05-08 03:18:46.000000000 +0200
@@ -14,6 +14,24 @@
 cd "$CAFECC_BASEPATH"
 BAUHAUS_IR_COMPRESSION=none COMPILE_ONLY=1 cmake -G Ninja 
-DAXIVION_ANALYSIS_TOOLCHAIN_FILE=/home/qt/bauhaus-suite/profiles/cmake/axivion-launcher-toolchain.cmake
 -DCMAKE_PREFIX_PATH=/home/qt/work/qt/qtconnectivity/build 
-DCMAKE_PROJECT_INCLUDE_BEFORE=/home/qt/bauhaus-suite/profiles/cmake/axivion-before-project-hook.cmake
 -B build -S . --fresh
 cmake --build build -j4
+
+ROOT_DIR=src
+MAGIC="Qt-Security score:critical"
+
+INCLUDE_FILES=""
+
+while IFS= read -r file; do
+    if [ -z "$INCLUDE_FILES" ]; then
+        INCLUDE_FILES="$file"
+    else
+        INCLUDE_FILES="$INCLUDE_FILES:$file"
+    fi
+done <<EOF
+$(grep -rl "$MAGIC" "$ROOT_DIR")
+EOF
+
+export INCLUDE_FILES
+
 for MODULE in qtnfc qtbluetooth; do
     export MODULE
     export PLUGINS=""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/dependencies.yaml 
new/qtconnectivity-everywhere-src-6.11.1/dependencies.yaml
--- old/qtconnectivity-everywhere-src-6.11.0/dependencies.yaml  2026-03-10 
06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/dependencies.yaml  2026-05-08 
03:18:46.000000000 +0200
@@ -1,7 +1,7 @@
 dependencies:
   ../qtbase:
-    ref: 8ba7ea4b77a4b8f1948760221e264917ddc9e1c8
+    ref: 59c81a3c2247b821b9b84b4eb8d939b77e07e276
     required: true
   ../qtdeclarative:
-    ref: e602a097ca314e9610b1fd3b7dbfa467a868731a
+    ref: a02bed441965ee1f18f856352c7d5ee5ba35d795
     required: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/CMakeLists.txt 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/CMakeLists.txt
--- old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/CMakeLists.txt       
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/CMakeLists.txt       
2026-05-08 03:18:46.000000000 +0200
@@ -35,8 +35,6 @@
         qlowenergyserviceprivate.cpp qlowenergyserviceprivate_p.h
         qprivatelinearbuffer_p.h
         qtbluetoothglobal.h qtbluetoothglobal_p.h
-    DEFINES
-        QT_NO_CONTEXTLESS_CONNECT
     LIBRARIES
         Qt::CorePrivate
         Qt::NetworkPrivate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/bluetoothmanagement.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/bluetoothmanagement.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/bluetoothmanagement.cpp
        2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/bluetoothmanagement.cpp
        2026-05-08 03:18:46.000000000 +0200
@@ -184,7 +184,8 @@
             break;
 
         const MgmtHdr *hdr = reinterpret_cast<const 
MgmtHdr*>(data.constData());
-        const auto nextPackageSize = qsizetype(qFromLittleEndian(hdr->length) 
+ sizeof(MgmtHdr));
+        const size_t nextPackageDataSize = qFromLittleEndian(hdr->length);
+        const auto nextPackageSize = qsizetype(nextPackageDataSize + 
sizeof(MgmtHdr));
         const qsizetype remainingPackageSize = data.size() - nextPackageSize;
 
         if (data.size() < nextPackageSize)
@@ -193,18 +194,20 @@
         switch (static_cast<EventCode>(qFromLittleEndian(hdr->cmdCode))) {
         case EventCode::DeviceFoundEvent:
         {
-            const MgmtEventDeviceFound *event = reinterpret_cast<const 
MgmtEventDeviceFound*>
-                                                   (data.constData() + 
sizeof(MgmtHdr));
-
-            if (event->type == BDADDR_LE_RANDOM) {
-                const bdaddr_t address = event->bdaddr;
-                quint64 bdaddr;
-
-                convertAddress(address.b, &bdaddr);
-                const QBluetoothAddress qtAddress(bdaddr);
-                qCDebug(QT_BT_BLUEZ) << "BluetoothManagement: found random 
device"
-                                     << qtAddress;
-                processRandomAddressFlagInformation(qtAddress);
+            if (nextPackageDataSize >= sizeof(MgmtEventDeviceFound)) {
+                const MgmtEventDeviceFound *event = reinterpret_cast<const 
MgmtEventDeviceFound*>
+                                                       (data.constData() + 
sizeof(MgmtHdr));
+
+                if (event->type == BDADDR_LE_RANDOM) {
+                    const bdaddr_t address = event->bdaddr;
+                    quint64 bdaddr;
+
+                    convertAddress(address.b, &bdaddr);
+                    const QBluetoothAddress qtAddress(bdaddr);
+                    qCDebug(QT_BT_BLUEZ) << "BluetoothManagement: found random 
device"
+                                         << qtAddress;
+                    processRandomAddressFlagInformation(qtAddress);
+                }
             }
 
             break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/bluez5_helper.cpp 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/bluez5_helper.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/bluez5_helper.cpp  
    2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/bluez5_helper.cpp  
    2026-05-08 03:18:46.000000000 +0200
@@ -188,6 +188,7 @@
 
             auto determineBinaryVersion = [](const QString &binary) -> 
QVersionNumber {
                 QProcess process;
+                // AXIVION Next Line Qt-Security-QProcessStart: expected 
behavior
                 process.start(binary, {QStringLiteral("--version")});
                 process.waitForFinished();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/bluezperipheralapplication.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/bluezperipheralapplication.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/bluezperipheralapplication.cpp
 2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/bluezperipheralapplication.cpp
 2026-05-08 03:18:46.000000000 +0200
@@ -154,7 +154,8 @@
     m_services.insert(serviceHandle, service);
 
     // Add included services
-    for (const auto includedService : serviceData.includedServices()) {
+    const auto includedServices = serviceData.includedServices();
+    for (const auto includedService : includedServices) {
         // As per Qt documentation the included service must have been added 
earlier
         for (const auto s : std::as_const(m_services)) {
             if (QBluetoothUuid(s->uuid) == includedService->serviceUuid()) {
@@ -165,7 +166,8 @@
 
     // Set characteristics and their descriptors
     quint16 characteristicOrdinal{0};
-    for (const auto& characteristicData : serviceData.characteristics()) {
+    const auto characteristics = serviceData.characteristics();
+    for (const auto &characteristicData : characteristics) {
         auto characteristicHandle = handleForCharacteristic(
                     characteristicData.uuid(), servicePrivate);
         QtBluezPeripheralCharacteristic* characteristic =
@@ -179,7 +181,8 @@
                          this, 
&QtBluezPeripheralApplication::remoteDeviceAccessEvent);
 
         quint16 descriptorOrdinal{0};
-        for (const auto& descriptorData : characteristicData.descriptors()) {
+        const auto descriptors = characteristicData.descriptors();
+        for (const auto &descriptorData : descriptors) {
             // With bluez we don't use the CCCD user has provided, because 
Bluez
             // generates it if 'notify/indicate' flag is set. Similarly the 
extended properties
             // descriptor is generated by Bluez if the related flags are set. 
Using the application
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/bluezperipheralobjects.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/bluezperipheralobjects.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/bluezperipheralobjects.cpp
     2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/bluezperipheralobjects.cpp
     2026-05-08 03:18:46.000000000 +0200
@@ -340,7 +340,8 @@
         // describing them. Bluez will generate the actual descriptor based on 
these
         // flags. For clarity: the 'extended-properties' token mentioned in 
the Bluez
         // API is implied by these flags.
-        for (const auto& descriptor : data.descriptors()) {
+        const auto descriptors = data.descriptors();
+        for (const auto &descriptor : descriptors) {
             // Core Bluetooth v5.3 Vol 3, Part G, 3.3.3.1
             if (descriptor.uuid()
                     == 
QBluetoothUuid::DescriptorType::CharacteristicExtendedProperties
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/hcimanager.cpp 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/hcimanager.cpp
--- old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/bluez/hcimanager.cpp 
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/bluez/hcimanager.cpp 
2026-05-08 03:18:46.000000000 +0200
@@ -527,8 +527,9 @@
 //                         << "payload length:" << l2CapHeader.length;
     if (l2CapHeader.channelId != SECURITY_CHANNEL_ID)
         return;
-    if (size != 17) {
-        qCWarning(QT_BT_BLUEZ) << "Unexpected key size" << size << "in Signing 
Information packet";
+    if (l2CapHeader.length != 17) {
+        qCWarning(QT_BT_BLUEZ) << "Unexpected length of the Signing 
Information packet:"
+                               << l2CapHeader.length;
         return;
     }
     if (*data != 0xa) // "Signing Information". Spec v4.2, Vol 3, Part H, 3.6.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/darwin/btrfcommchannel.mm
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/darwin/btrfcommchannel.mm
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/darwin/btrfcommchannel.mm
    2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/darwin/btrfcommchannel.mm
    2026-05-08 03:18:46.000000000 +0200
@@ -142,10 +142,12 @@
 {
     Q_UNUSED(rfcommChannel);
 
-    Q_ASSERT_X(channelOpenTimer.get(), Q_FUNC_INFO, "invalid timer (null)");
     Q_ASSERT_X(delegate, Q_FUNC_INFO, "invalid delegate (null)");
 
-    channelOpenTimer->stop();
+    // Timer can be null, if we're running as a server, and the channel is
+    // opened as a result of a client connection
+    if (channelOpenTimer)
+        channelOpenTimer->stop();
     if (error != kIOReturnSuccess) {
         delegate->setChannelError(error);
         delegate->channelClosed();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/doc/src/bluetooth-index.qdoc
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/doc/src/bluetooth-index.qdoc
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/doc/src/bluetooth-index.qdoc
 2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/doc/src/bluetooth-index.qdoc
 2026-05-08 03:18:46.000000000 +0200
@@ -16,8 +16,8 @@
     \li API Feature
     \li \l {Qt for Android}{Android}
     \li \l {Qt for iOS}{iOS}
-    \li \l {Qt for Linux/X11}{Linux (BlueZ 5.x)}
-    \li \l \macos
+    \li \l {Qt for Linux}{Linux (BlueZ 5.x)}
+    \li \l {Qt for macOS}{\macos}
     \li \l {Qt for Windows}{Windows}
 \row
     \li Classic Bluetooth
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/lecmaccalculator.cpp 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/lecmaccalculator.cpp
--- old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/lecmaccalculator.cpp 
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/lecmaccalculator.cpp 
2026-05-08 03:18:46.000000000 +0200
@@ -68,8 +68,6 @@
         return false;
     QUuid::Id128Bytes csrkMsb;
     std::reverse_copy(std::begin(csrk.data), std::end(csrk.data), 
std::begin(csrkMsb.data));
-    qCDebug(QT_BT_BLUEZ) << "CSRK (MSB):" << QByteArray(reinterpret_cast<char 
*>(csrkMsb.data),
-                                                        sizeof 
csrkMsb).toHex();
     if (setsockopt(m_baseSocket, 279 /* SOL_ALG */, ALG_SET_KEY, csrkMsb.data, 
sizeof csrkMsb) == -1) {
         qCWarning(QT_BT_BLUEZ) << "setsockopt() failed for crypto socket:" << 
strerror(errno);
         return 0;
@@ -134,8 +132,7 @@
 #ifdef CONFIG_LINUX_CRYPTO_API
     const quint64 actualMac = calculateMac(message, csrk);
     if (actualMac != expectedMac) {
-        qCWarning(QT_BT_BLUEZ) << Qt::hex << "signature verification failed: 
calculated mac:"
-                               << actualMac << "expected mac:" << expectedMac;
+        qCWarning(QT_BT_BLUEZ) << "signature verification failed: mac 
mismatch";
         return false;
     }
     return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
     2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
     2026-05-08 03:18:46.000000000 +0200
@@ -247,17 +247,13 @@
     }
 
     const ManufacturerDataList deviceManufacturerData = 
qdbus_cast<ManufacturerDataList>(properties[QStringLiteral("ManufacturerData")]);
-    const QList<quint16> keysManufacturer = deviceManufacturerData.keys();
-    for (quint16 key : keysManufacturer)
-        deviceInfo.setManufacturerData(
-                    key, 
deviceManufacturerData.value(key).variant().toByteArray());
+    for (const auto &[key, value] : deviceManufacturerData.asKeyValueRange())
+        deviceInfo.setManufacturerData(key, value.variant().toByteArray());
 
     const ServiceDataList deviceServiceData =
             
qdbus_cast<ServiceDataList>(properties[QStringLiteral("ServiceData")]);
-    const QList<QString> keysService = deviceServiceData.keys();
-    for (QString key : keysService)
-        deviceInfo.setServiceData(QBluetoothUuid(key),
-                                  
deviceServiceData.value(key).variant().toByteArray());
+    for (const auto &[key, value] : deviceServiceData.asKeyValueRange())
+        deviceInfo.setServiceData(QBluetoothUuid(key), 
value.variant().toByteArray());
 
     return deviceInfo;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothlocaldevice_p.h
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothlocaldevice_p.h
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothlocaldevice_p.h
    2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothlocaldevice_p.h
    2026-05-08 03:18:46.000000000 +0200
@@ -116,6 +116,7 @@
     QMap<QString, QtBluetoothPrivate::OrgFreedesktopDBusPropertiesInterface *> 
deviceChangeMonitors;
 
     QList<QBluetoothAddress> connectedDevices() const;
+    bool isValid() const;
 
     QBluetoothAddress localAddress;
     QBluetoothAddress address;
@@ -128,9 +129,6 @@
 
 public slots:
     void pairingCompleted(QDBusPendingCallWatcher *);
-
-    bool isValid() const;
-
     void requestPairing(const QBluetoothAddress &address,
                         QBluetoothLocalDevice::Pairing targetPairing);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
    2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
    2026-05-08 03:18:46.000000000 +0200
@@ -120,6 +120,7 @@
         sdpScannerProcess->setReadChannel(QProcess::StandardOutput);
         if (QT_BT_BLUEZ().isDebugEnabled())
             
sdpScannerProcess->setProcessChannelMode(QProcess::ForwardedErrorChannel);
+        // AXIVION Next Line Qt-Security-QProcessStart: expected behavior
         sdpScannerProcess->setProgram(fileInfo.canonicalFilePath());
         q->connect(sdpScannerProcess,
                    QOverload<int, 
QProcess::ExitStatus>::of(&QProcess::finished),
@@ -403,10 +404,16 @@
     _q_serviceDiscoveryFinished();
 }
 
-QVariant 
QBluetoothServiceDiscoveryAgentPrivate::readAttributeValue(QXmlStreamReader 
&xml)
+QVariant 
QBluetoothServiceDiscoveryAgentPrivate::readAttributeValue(QXmlStreamReader 
&xml,
+                                                                    int depth)
 {
     auto skippingCurrentElementByDefault = qScopeGuard([&] { 
xml.skipCurrentElement(); });
 
+    if (depth > kMaxSdpRecursionDepth) {
+        qCWarning(QT_BT_BLUEZ) << "SDP XML attribute recursion depth exceeded";
+        return QVariant();
+    }
+
     if (xml.name() == QLatin1String("boolean")) {
         return xml.attributes().value(QLatin1String("value")) == 
QLatin1String("true");
     } else if (xml.name() == QLatin1String("uint8")) {
@@ -447,7 +454,7 @@
         skippingCurrentElementByDefault.dismiss(); // we skip several elements 
here
 
         while (xml.readNextStartElement()) {
-            QVariant value = readAttributeValue(xml);
+            QVariant value = readAttributeValue(xml, depth + 1);
             sequence.append(value);
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothservicediscoveryagent_p.h
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothservicediscoveryagent_p.h
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothservicediscoveryagent_p.h
  2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothservicediscoveryagent_p.h
  2026-05-08 03:18:46.000000000 +0200
@@ -56,6 +56,9 @@
 #include <QtBluetooth/QBluetoothLocalDevice>
 #endif
 
+// intentionally outside of Qt namespace
+class tst_QBluetoothServiceDiscoveryAgent;
+
 QT_BEGIN_NAMESPACE
 
 class QBluetoothDeviceDiscoveryAgent;
@@ -68,7 +71,7 @@
 class QWinRTBluetoothServiceDiscoveryWorker;
 #endif
 
-class QBluetoothServiceDiscoveryAgentPrivate
+class Q_AUTOTEST_EXPORT QBluetoothServiceDiscoveryAgentPrivate
 #if defined(QT_WINRT_BLUETOOTH)
         : public QObject
 {
@@ -80,8 +83,12 @@
 {
 #endif
     Q_DECLARE_PUBLIC(QBluetoothServiceDiscoveryAgent)
+    friend class ::tst_QBluetoothServiceDiscoveryAgent;
 
 public:
+    // Best-guess value. Should be enough for all real usecases.
+    static constexpr int kMaxSdpRecursionDepth = 64;
+
     enum DiscoveryState {
         Inactive,
         DeviceDiscovery,
@@ -132,7 +139,7 @@
     void runExternalSdpScan(const QBluetoothAddress &remoteAddress,
                     const QBluetoothAddress &localAddress);
     void sdpScannerDone(int exitCode, QProcess::ExitStatus exitStatus);
-    QVariant readAttributeValue(QXmlStreamReader &xml);
+    QVariant readAttributeValue(QXmlStreamReader &xml, int depth = 0);
     QBluetoothServiceInfo parseServiceXml(const QString& xml);
     void performMinimalServiceDiscovery(const QBluetoothAddress 
&deviceAddress);
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothservicediscoveryagent_winrt.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothservicediscoveryagent_winrt.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothservicediscoveryagent_winrt.cpp
    2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothservicediscoveryagent_winrt.cpp
    2026-05-08 03:18:46.000000000 +0200
@@ -69,7 +69,7 @@
     HRESULT onBluetoothDeviceFoundAsync(IAsyncOperation<BluetoothDevice *> 
*op, AsyncStatus status);
 
     void processServiceSearchResult(quint64 address, 
ComPtr<IVectorView<RfcommDeviceService*>> services);
-    QBluetoothServiceInfo::Sequence readSequence(ComPtr<IDataReader> 
dataReader, bool *ok, quint8 *bytesRead);
+    QBluetoothServiceInfo::Sequence readSequence(ComPtr<IDataReader> 
dataReader, bool *ok, quint8 *bytesRead, int depth = 0);
 
 private:
     quint64 m_targetAddress;
@@ -306,7 +306,7 @@
     deleteLater();
 }
 
-QBluetoothServiceInfo::Sequence 
QWinRTBluetoothServiceDiscoveryWorker::readSequence(ComPtr<IDataReader> 
dataReader, bool *ok, quint8 *bytesRead)
+QBluetoothServiceInfo::Sequence 
QWinRTBluetoothServiceDiscoveryWorker::readSequence(ComPtr<IDataReader> 
dataReader, bool *ok, quint8 *bytesRead, int depth)
 {
     if (ok)
         *ok = false;
@@ -316,6 +316,11 @@
     if (!dataReader)
         return result;
 
+    if (depth > QBluetoothServiceDiscoveryAgentPrivate::kMaxSdpRecursionDepth) 
{
+        qCWarning(QT_BT_WINDOWS) << "SDP sequence recursion depth exceeded";
+        return result;
+    }
+
     quint8 remainingLength;
     HRESULT hr = dataReader->ReadByte(&remainingLength);
     Q_ASSERT_SUCCEEDED(hr);
@@ -404,7 +409,7 @@
         }
         case TYPE_SEQUENCE: {
             quint8 bytesR;
-            const QBluetoothServiceInfo::Sequence sequence = 
readSequence(dataReader, ok, &bytesR);
+            const QBluetoothServiceInfo::Sequence sequence = 
readSequence(dataReader, ok, &bytesR, depth + 1);
             if (*ok)
                 result.append(QVariant::fromValue(sequence));
             else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothuuid.cpp 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothuuid.cpp
--- old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothuuid.cpp   
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothuuid.cpp   
2026-05-08 03:18:46.000000000 +0200
@@ -1040,6 +1040,16 @@
     \brief Returns \c true if \a a is not equal to \a b, otherwise \c false.
 */
 
+/*!
+    \since 6.11.1
+    \fn size_t QBluetoothUuid::qHash(QBluetoothUuid key, size_t seed = 0)
+    \qhash{QBluetoothUuid}
+
+    In Qt versions prior to 6.11.1, the type was hashable via its implicit
+    conversion to QUuid. This explicit qHash() overload retains compatibility
+    with that implicit qHash().
+*/
+
 #ifndef QT_NO_DEBUG_STREAM
 QDebug operator<<(QDebug debug, const QBluetoothUuid &uuid)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothuuid.h 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothuuid.h
--- old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qbluetoothuuid.h     
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qbluetoothuuid.h     
2026-05-08 03:18:46.000000000 +0200
@@ -7,6 +7,7 @@
 #include <QtBluetooth/qtbluetoothglobal.h>
 
 #include <QtCore/QtGlobal>
+#include <QtCore/qhashfunctions.h>
 #include <QtCore/QMetaType>
 #include <QtCore/QUuid>
 
@@ -401,6 +402,12 @@
     static QString protocolToString(ProtocolUuid uuid);
     static QString characteristicToString(CharacteristicType uuid);
     static QString descriptorToString(DescriptorType uuid);
+
+private:
+    friend size_t qHash(QBluetoothUuid key, size_t seed = 0) noexcept
+    {
+        return QHashPrivate::ex1to2arg(QUuid{key}, seed);
+    }
 };
 
 #if QT_BLUETOOTH_INLINE_IMPL_SINCE(6, 6)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qleadvertiser_bluez.cpp 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qleadvertiser_bluez.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qleadvertiser_bluez.cpp  
    2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qleadvertiser_bluez.cpp  
    2026-05-08 03:18:46.000000000 +0200
@@ -275,7 +275,7 @@
         return;
 
     const QByteArray manufacturerData = src.manufacturerData();
-    if (dest.length >= sizeof dest.data - 1 - 1 - 2 - manufacturerData.size()) 
{
+    if (qsizetype(sizeof dest.data) - dest.length < 1 + 1 + 2 + 
manufacturerData.size()) {
         qCWarning(QT_BT_BLUEZ) << "manufacturer data does not fit into 
advertising data packet";
         return;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qleadvertiser_bluezdbus.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qleadvertiser_bluezdbus.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qleadvertiser_bluezdbus.cpp
  2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qleadvertiser_bluezdbus.cpp
  2026-05-08 03:18:46.000000000 +0200
@@ -50,7 +50,8 @@
     // Union of service UUIDs:
     if (scanResponseData.services() != advertisingData.services()) {
         QList<QBluetoothUuid> services = advertisingData.services();
-        for (const auto &service: scanResponseData.services()) {
+        const auto scanResponseServices = scanResponseData.services();
+        for (const auto &service : scanResponseServices) {
             if (!services.contains(service))
                 services.append(service);
         }
@@ -136,7 +137,8 @@
     // Service UUIDs
     if (!m_advData.services().isEmpty()) {
         QStringList serviceUUIDList;
-        for (const auto& service: m_advData.services())
+        const auto services = m_advData.services();
+        for (const auto &service : services)
             serviceUUIDList << 
service.toString(QUuid::StringFormat::WithoutBraces);
         m_advDataDBus->setServiceUUIDs(serviceUUIDList);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qlowenergycontroller_bluez.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qlowenergycontroller_bluez.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qlowenergycontroller_bluez.cpp
       2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qlowenergycontroller_bluez.cpp
       2026-05-08 03:18:46.000000000 +0200
@@ -212,9 +212,7 @@
                         || (!remoteKey && role == 
QLowEnergyController::PeripheralRole)) {
                     return;
                 }
-                qCDebug(QT_BT_BLUEZ) << "received new signature resolving key"
-                                     << QByteArray(reinterpret_cast<const char 
*>(csrk.data),
-                                                   sizeof csrk).toHex();
+                qCDebug(QT_BT_BLUEZ) << "received new signature resolving key";
                 signingData.insert(remoteDevice.toUInt64(), SigningData(csrk));
         }
     );
@@ -451,7 +449,7 @@
     // BlueZ 5.37+ (maybe even earlier versions) can have pending BTLE 
connections
     // Only one active L2CP socket to CID 0x4 possible at a time
 
-    QList<quint16> activeHandles = hciManager->activeLowEnergyConnections();
+    const QList<quint16> activeHandles = 
hciManager->activeLowEnergyConnections();
     if (!activeHandles.isEmpty()) {
         qCWarning(QT_BT_BLUEZ) << "Cannot connect due to pending active LE 
connections";
 
@@ -3229,7 +3227,6 @@
                                << keyString.size();
         return;
     }
-    qCDebug(QT_BT_BLUEZ) << "CSRK of peer device is" << keyString;
     const quint32 counter = settings.value(QLatin1String("Counter"), 
0).toUInt();
     using namespace std;
     BluezUint128 csrk;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qlowenergycontroller_bluezdbus.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qlowenergycontroller_bluezdbus.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qlowenergycontroller_bluezdbus.cpp
   2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qlowenergycontroller_bluezdbus.cpp
   2026-05-08 03:18:46.000000000 +0200
@@ -128,7 +128,8 @@
             for (const QString &uuidString : newUuidStringList)
                 newUuidList.append(QBluetoothUuid(uuidString));
 
-            for (const QBluetoothUuid &uuid : serviceList.keys()) {
+            const auto serviceKeys = serviceList.keys();
+            for (const QBluetoothUuid &uuid : serviceKeys) {
                 if (!newUuidList.contains(uuid)) {
                     qCDebug(QT_BT_BLUEZ) << __func__ << "Service" << uuid << 
"has been removed";
                     QSharedPointer<QLowEnergyServicePrivate> service = 
serviceList.take(uuid);
@@ -502,8 +503,9 @@
                     batteryServicePath = it.key().path();
                     break;
                 } else if (iface == QStringLiteral("org.bluez.Device1")) {
-                    for (auto const& uuid :
-                         
battIter.value()[QStringLiteral("UUIDs")].toStringList()) {
+                    const auto batteryUuids =
+                            
battIter.value()[QStringLiteral("UUIDs")].toStringList();
+                    for (auto const &uuid : batteryUuids) {
                         if (QBluetoothUuid(uuid) ==
                                 
QBluetoothUuid::ServiceClassUuid::BatteryService) {
                             qCDebug(QT_BT_BLUEZ) << "Battery service listed as 
available service";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qlowenergycontrollerbase.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qlowenergycontrollerbase.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/bluetooth/qlowenergycontrollerbase.cpp
 2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/bluetooth/qlowenergycontrollerbase.cpp
 2026-05-08 03:18:46.000000000 +0200
@@ -119,9 +119,10 @@
         currentList = localServices;
 
     const QList<QSharedPointer<QLowEnergyServicePrivate>> values = 
currentList.values();
-    for (auto service: values)
+    for (const auto &service: values) {
         if (service->startHandle <= handle && handle <= service->endHandle)
             return service;
+    }
 
     return QSharedPointer<QLowEnergyServicePrivate>();
 }
@@ -234,10 +235,10 @@
 
 void QLowEnergyControllerPrivate::invalidateServices()
 {
-    for (QSharedPointer<QLowEnergyServicePrivate> service : 
serviceList.values())
+    for (const QSharedPointer<QLowEnergyServicePrivate> &service : 
std::as_const(serviceList))
         service->setController(nullptr);
 
-    for (QSharedPointer<QLowEnergyServicePrivate> service : 
localServices.values())
+    for (const QSharedPointer<QLowEnergyServicePrivate> &service : 
std::as_const(localServices))
         service->setController(nullptr);
 
     serviceList.clear();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/nfc/CMakeLists.txt 
new/qtconnectivity-everywhere-src-6.11.1/src/nfc/CMakeLists.txt
--- old/qtconnectivity-everywhere-src-6.11.0/src/nfc/CMakeLists.txt     
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/src/nfc/CMakeLists.txt     
2026-05-08 03:18:46.000000000 +0200
@@ -16,8 +16,6 @@
         qnearfieldmanager.cpp qnearfieldmanager.h qnearfieldmanager_p.h
         qnearfieldtarget.cpp qnearfieldtarget.h qnearfieldtarget_p.cpp 
qnearfieldtarget_p.h
         qtnfcglobal.h qtnfcglobal_p.h
-    DEFINES
-        QT_NO_CONTEXTLESS_CONNECT
     PUBLIC_LIBRARIES
         Qt::Core
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/nfc/doc/src/nfc-index.qdoc 
new/qtconnectivity-everywhere-src-6.11.1/src/nfc/doc/src/nfc-index.qdoc
--- old/qtconnectivity-everywhere-src-6.11.0/src/nfc/doc/src/nfc-index.qdoc     
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/src/nfc/doc/src/nfc-index.qdoc     
2026-05-08 03:18:46.000000000 +0200
@@ -11,7 +11,7 @@
 The NFC API provides connectivity between NFC enabled devices.
 
 Currently, the API is supported on \l{Qt for Android}{Android}, \l{Qt for
-iOS}{iOS} and \l{Qt for Linux/X11}{Linux} using
+iOS}{iOS} and \l{Qt for Linux}{Linux} using
 \l {https://github.com/linux-nfc/neard}{Neard} v0.14 or later.
 This module also provides limited access to readers supporting
 \l{PC/SC in Qt NFC}{PC/SC} specification on Linux, macOS, and Windows.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/nfc/pcsc/qpcsc_p.h 
new/qtconnectivity-everywhere-src-6.11.1/src/nfc/pcsc/qpcsc_p.h
--- old/qtconnectivity-everywhere-src-6.11.0/src/nfc/pcsc/qpcsc_p.h     
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/src/nfc/pcsc/qpcsc_p.h     
2026-05-08 03:18:46.000000000 +0200
@@ -26,6 +26,7 @@
 #    include <winscard.h>
 #endif
 #include <QtCore/QByteArray>
+#include <QtCore/qhashfunctions.h>
 #include <QtCore/QString>
 
 QT_BEGIN_NAMESPACE
@@ -43,12 +44,15 @@
 
 } // namespace QPcsc
 
-class QPcscSlotName : public
+using QPcscSlotNameBase =
 #ifdef Q_OS_WIN
                       QString
 #else
                       QByteArray
 #endif
+                      ;
+
+class QPcscSlotName : public QPcscSlotNameBase
 {
 public:
 #ifdef Q_OS_WIN
@@ -65,6 +69,12 @@
     Ptr ptr() { return reinterpret_cast<Ptr>(data()); }
 
     static qsizetype nameSize(CPtr p);
+
+    friend size_t qHash(const QPcscSlotName &key, size_t seed = 0) noexcept
+    {
+        const QPcscSlotNameBase &base = key;
+        return qHash(base, seed);
+    }
 };
 
 QT_END_NAMESPACE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/src/tools/sdpscanner/CMakeLists.txt 
new/qtconnectivity-everywhere-src-6.11.1/src/tools/sdpscanner/CMakeLists.txt
--- 
old/qtconnectivity-everywhere-src-6.11.0/src/tools/sdpscanner/CMakeLists.txt    
    2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/src/tools/sdpscanner/CMakeLists.txt    
    2026-05-08 03:18:46.000000000 +0200
@@ -13,8 +13,6 @@
     INSTALL_DIR "${INSTALL_LIBEXECDIR}"
     SOURCES
         main.cpp
-    DEFINES
-        QT_NO_CONTEXTLESS_CONNECT
     LIBRARIES
         PkgConfig::BLUEZ
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
   2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
   2026-05-08 03:18:46.000000000 +0200
@@ -86,7 +86,8 @@
     const bool ciRun = qEnvironmentVariable("QTEST_ENVIRONMENT").split(' 
').contains("ci");
     if (!ciRun && permissionStatus == Qt::PermissionStatus::Undetermined) {
         QTestEventLoop loop;
-        qApp->requestPermission(QBluetoothPermission{}, [this, &loop](const 
QPermission &permission){
+        qApp->requestPermission(QBluetoothPermission{},
+                                &loop, [this, &loop](const QPermission 
&permission) {
             permissionStatus = permission.status();
             loop.exitLoop();
         });
@@ -158,9 +159,6 @@
 
 void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
 {
-    if (androidBluetoothEmulator())
-        QSKIP("Skipping test on Android 12+ emulator, CI can timeout waiting 
for user input");
-
     QBluetoothDeviceDiscoveryAgent discoveryAgent;
 
     QVERIFY(discoveryAgent.error() == discoveryAgent.NoError);
@@ -446,9 +444,6 @@
 
 void tst_QBluetoothDeviceDiscoveryAgent::tst_discoveryMethods()
 {
-    if (androidBluetoothEmulator())
-        QSKIP("Skipping test on Android 12+ emulator, CI can timeout waiting 
for user input");
-
     const QBluetoothLocalDevice localDevice;
     if (localDevice.allDevices().size() != 1) {
         // On iOS it returns 0 but we still have working BT.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qbluetoothservicediscoveryagent/CMakeLists.txt
 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qbluetoothservicediscoveryagent/CMakeLists.txt
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qbluetoothservicediscoveryagent/CMakeLists.txt
  2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qbluetoothservicediscoveryagent/CMakeLists.txt
  2026-05-08 03:18:46.000000000 +0200
@@ -15,7 +15,7 @@
     SOURCES
         tst_qbluetoothservicediscoveryagent.cpp
     LIBRARIES
-        Qt::Bluetooth
+        Qt::BluetoothPrivate
 )
 
 ## Scopes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qbluetoothservicediscoveryagent/tst_qbluetoothservicediscoveryagent.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qbluetoothservicediscoveryagent/tst_qbluetoothservicediscoveryagent.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qbluetoothservicediscoveryagent/tst_qbluetoothservicediscoveryagent.cpp
 2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qbluetoothservicediscoveryagent/tst_qbluetoothservicediscoveryagent.cpp
 2026-05-08 03:18:46.000000000 +0200
@@ -16,8 +16,14 @@
 #include <qbluetoothserver.h>
 #include <qbluetoothserviceinfo.h>
 
+#if QT_CONFIG(bluez) && defined(QT_BUILD_INTERNAL)
+#include <private/qbluetoothservicediscoveryagent_p.h>
+#endif
+
 QT_USE_NAMESPACE
 
+using namespace Qt::StringLiterals;
+
 // Maximum time to for bluetooth device scan
 const int MaxScanTime = 5 * 60 * 1000;  // 5 minutes in ms
 
@@ -42,6 +48,7 @@
     void tst_serviceDiscovery();
     void tst_serviceDiscoveryStop();
     void tst_serviceDiscoveryAdapters();
+    void tst_parseServiceXmlRecursionLimit();
 
 private:
     QList<QBluetoothDeviceInfo> devices;
@@ -51,8 +58,6 @@
 tst_QBluetoothServiceDiscoveryAgent::tst_QBluetoothServiceDiscoveryAgent()
 {
     QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true"));
-    if (androidBluetoothEmulator())
-        return;
     // start Bluetooth if not started
 #ifndef Q_OS_MACOS
     QBluetoothLocalDevice *device = new QBluetoothLocalDevice();
@@ -92,9 +97,6 @@
 
 void tst_QBluetoothServiceDiscoveryAgent::initTestCase()
 {
-    if (androidBluetoothEmulator())
-        QSKIP("Skipping test on Android 12+ emulator, CI can timeout waiting 
for user input");
-
     if (localDeviceAvailable) {
         QBluetoothDeviceDiscoveryAgent discoveryAgent;
 
@@ -458,6 +460,53 @@
     QVERIFY(!discoveryAgent.isActive());
 }
 
+void tst_QBluetoothServiceDiscoveryAgent::tst_parseServiceXmlRecursionLimit()
+{
+#if QT_CONFIG(bluez) && defined(QT_BUILD_INTERNAL)
+    // Build an SDP XML record with deeply nested <sequence> elements.
+    // Without a recursion limit this would overflow the stack.
+    const int nestingDepth = 
QBluetoothServiceDiscoveryAgentPrivate::kMaxSdpRecursionDepth * 3;
+
+    QString xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
+                  "<record>"
+                  "<attribute id=\"0x0001\">"_L1;
+
+    for (int i = 0; i < nestingDepth; ++i)
+        xml += "<sequence>"_L1;
+    xml += "<uint16 value=\"0x1101\" />"_L1;
+    for (int i = 0; i < nestingDepth; ++i)
+        xml += "</sequence>"_L1;
+
+    xml += "</attribute></record>"_L1;
+
+    QBluetoothServiceDiscoveryAgentPrivate priv(nullptr, QBluetoothAddress());
+    // parseServiceXml accesses discoveredDevices.at(0), so provide a dummy
+    QBluetoothDeviceInfo dummyInfo{ QBluetoothAddress("00:11:22:33:44:55"_L1), 
"Dummy"_L1, 0 };
+    priv.discoveredDevices.emplace_back(std::move(dummyInfo));
+
+    // Must not crash or hang; expect the recursion-limit warning
+    QTest::ignoreMessage(QtWarningMsg, "SDP XML attribute recursion depth 
exceeded");
+    const QBluetoothServiceInfo info = priv.parseServiceXml(xml);
+
+    // Walk the nested sequences and count the actual depth parsed.
+    // The recursion limit must have kicked in: we expect many levels
+    // but strictly fewer than nestingDepth.
+    int actualDepth = 0;
+    QVariant v = info.attribute(0x0001);
+    while (v.canConvert<QBluetoothServiceInfo::Sequence>()) {
+        const auto seq = v.value<QBluetoothServiceInfo::Sequence>();
+        if (seq.isEmpty())
+            break;
+        ++actualDepth;
+        v = seq.first();
+    }
+    QVERIFY(actualDepth > 1);
+    QVERIFY(actualDepth < nestingDepth);
+#else
+    QSKIP("This test is only available on Linux developer build with BlueZ");
+#endif
+}
+
 QTEST_MAIN(tst_QBluetoothServiceDiscoveryAgent)
 
 #include "tst_qbluetoothservicediscoveryagent.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp
       2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp
       2026-05-08 03:18:46.000000000 +0200
@@ -261,7 +261,9 @@
     // test assignment operator
     target = chars[indexWithDescriptor];
     QVERIFY(target.isValid());
-    QVERIFY(!target.name().isEmpty());
+    // Only standard 16-bit Bluetooth SIG UUIDs are guaranteed to have a name
+    if (target.uuid().minimumSize() == 2)
+        QVERIFY(!target.name().isEmpty());
     QVERIFY(!target.uuid().isNull());
     QVERIFY(target.properties() != QLowEnergyCharacteristic::Unknown);
     if (target.properties() & QLowEnergyCharacteristic::Read)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
       2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
       2026-05-08 03:18:46.000000000 +0200
@@ -102,7 +102,8 @@
     const bool ciRun = qEnvironmentVariable("QTEST_ENVIRONMENT").split(' 
').contains("ci");
     if (!ciRun && permissionStatus == Qt::PermissionStatus::Undetermined) {
         QTestEventLoop loop;
-        qApp->requestPermission(QBluetoothPermission{}, [this, &loop](const 
QPermission &permission){
+        qApp->requestPermission(QBluetoothPermission{},
+                                &loop, [this, &loop](const QPermission 
&permission) {
             permissionStatus = permission.status();
             loop.exitLoop();
         });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qlowenergycontroller-gattserver/server/qlowenergycontroller-gattserver.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qlowenergycontroller-gattserver/server/qlowenergycontroller-gattserver.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qlowenergycontroller-gattserver/server/qlowenergycontroller-gattserver.cpp
      2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qlowenergycontroller-gattserver/server/qlowenergycontroller-gattserver.cpp
      2026-05-08 03:18:46.000000000 +0200
@@ -189,7 +189,8 @@
         }
     };
 
-    QObject::connect(leController.data(), &QLowEnergyController::stateChanged, 
stateChangedHandler);
+    QObject::connect(leController.data(), &QLowEnergyController::stateChanged,
+                     &app, stateChangedHandler);
     const auto descriptorWriteHandler = [customService]() {
         if (++descriptorWriteCount != 2)
             return;
@@ -210,7 +211,7 @@
         leController->requestConnectionUpdate(connParams);
     };
     QObject::connect(customService.data(), 
&QLowEnergyService::descriptorWritten,
-                     descriptorWriteHandler);
+                     &app, descriptorWriteHandler);
 
     return app.exec();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
       2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
       2026-05-08 03:18:46.000000000 +0200
@@ -55,7 +55,8 @@
     const bool ciRun = qEnvironmentVariable("QTEST_ENVIRONMENT").split(' 
').contains("ci");
     if (!ciRun && permissionStatus == Qt::PermissionStatus::Undetermined) {
         QTestEventLoop loop;
-        qApp->requestPermission(QBluetoothPermission{}, [this, &loop](const 
QPermission &permission){
+        qApp->requestPermission(QBluetoothPermission{},
+                                &loop, [this, &loop](const QPermission 
&permission) {
             permissionStatus = permission.status();
             loop.exitLoop();
         });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/bluetoothtestdevice/bluetoothtestdevice.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/bluetoothtestdevice/bluetoothtestdevice.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/bluetoothtestdevice/bluetoothtestdevice.cpp
  2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/bluetoothtestdevice/bluetoothtestdevice.cpp
  2026-05-08 03:18:46.000000000 +0200
@@ -86,7 +86,7 @@
     auto permissionStatus = app.checkPermission(QBluetoothPermission{});
     if (permissionStatus == Qt::PermissionStatus::Undetermined) {
         app.requestPermission(QBluetoothPermission{},
-                              [&permissionStatus](const QPermission 
&permission) {
+                              &app, [&permissionStatus](const QPermission 
&permission) {
             qApp->exit(); // Exit the permission request processing started 
below
             permissionStatus = permission.status();
         });
@@ -370,12 +370,12 @@
 #endif // Q_OS_IOS
 
     QObject::connect(leController.data(), &QLowEnergyController::errorOccurred,
-                     [](QLowEnergyController::Error error) {
+                     &app, [](QLowEnergyController::Error error) {
         qDebug() << "Bluetoothtestdevice QLowEnergyController errorOccurred:" 
<< error;
     });
 
     QObject::connect(leController.data(), &QLowEnergyController::stateChanged,
-                     [](QLowEnergyController::ControllerState state) {
+                     &app, [](QLowEnergyController::ControllerState state) {
         qDebug() << "Bluetoothtestdevice QLowEnergyController stateChanged:" 
<< state;
     });
 
@@ -424,9 +424,10 @@
         else
             qDebug() << "Cannot start advertising: Service not valid.";
     };
-    QObject::connect(leController.data(), &QLowEnergyController::disconnected, 
reconnect);
+    QObject::connect(leController.data(), &QLowEnergyController::disconnected, 
&app, reconnect);
 
-    QObject::connect(leController.data(), &QLowEnergyController::mtuChanged, 
[&services](int mtu) {
+    QObject::connect(leController.data(), &QLowEnergyController::mtuChanged,
+                     &app, [&services](int mtu) {
         qDebug() << "MTU changed, callback called.";
         Q_ASSERT(services[1]->serviceUuid() == QBluetoothUuid(mtuServiceUuid));
         QByteArray value((const char *)&mtu, sizeof(int));
@@ -467,7 +468,7 @@
 
         ++currentCharacteristicValue;
     };
-    QObject::connect(&notificationTestTimer, &QTimer::timeout, 
characteristicChanger);
+    QObject::connect(&notificationTestTimer, &QTimer::timeout, &app, 
characteristicChanger);
     notificationTestTimer.start(100);
 
     return app.exec();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/bttestui/btlocaldevice.cpp 
new/qtconnectivity-everywhere-src-6.11.1/tests/bttestui/btlocaldevice.cpp
--- old/qtconnectivity-everywhere-src-6.11.0/tests/bttestui/btlocaldevice.cpp   
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/tests/bttestui/btlocaldevice.cpp   
2026-05-08 03:18:46.000000000 +0200
@@ -926,12 +926,12 @@
     emit leChanged();
 
     QObject::connect(lePeripheralController.get(), 
&QLowEnergyController::errorOccurred,
-                     [this](QLowEnergyController::Error error) {
+                     this, [this](QLowEnergyController::Error error) {
         qDebug() << "QLowEnergyController peripheral errorOccurred:" << error;
         emit leChanged();
     });
     QObject::connect(lePeripheralController.get(), 
&QLowEnergyController::stateChanged,
-                     [this](QLowEnergyController::ControllerState state) {
+                     this, [this](QLowEnergyController::ControllerState state) 
{
         qDebug() << "QLowEnergyController peripheral stateChanged:" << state;
         emit leChanged();
     });
@@ -1038,32 +1038,32 @@
     }
 
     QObject::connect(lePeripheralServices[0].get(), 
&QLowEnergyService::characteristicWritten,
-                     [](const QLowEnergyCharacteristic&, const QByteArray& 
value){
+                     this, [](const QLowEnergyCharacteristic&, const 
QByteArray& value){
         qDebug() << "LE peripheral service characteristic value written" << 
value;
     });
     QObject::connect(lePeripheralServices[0].get(), 
&QLowEnergyService::characteristicRead,
-                     [](const QLowEnergyCharacteristic&, const QByteArray& 
value){
+                     this, [](const QLowEnergyCharacteristic&, const 
QByteArray& value){
         qDebug() << "LE peripheral service characteristic value read" << value;
     });
     QObject::connect(lePeripheralServices[0].get(), 
&QLowEnergyService::characteristicChanged,
-                     [](const QLowEnergyCharacteristic&, const QByteArray& 
value){
+                     this, [](const QLowEnergyCharacteristic&, const 
QByteArray& value){
         qDebug() << "LE peripheral service characteristic value changed" << 
value;
     });
     QObject::connect(lePeripheralServices[0].get(), 
&QLowEnergyService::descriptorRead,
-                     [](const QLowEnergyDescriptor&, const QByteArray& value){
+                     this, [](const QLowEnergyDescriptor&, const QByteArray& 
value) {
         qDebug() << "LE peripheral service descriptor value read" << value;
     });
     QObject::connect(lePeripheralServices[0].get(), 
&QLowEnergyService::descriptorWritten,
-                     [](const QLowEnergyDescriptor&, const QByteArray& value){
+                     this, [](const QLowEnergyDescriptor&, const QByteArray& 
value) {
         qDebug() << "LE peripheral service descriptor value written" << value;
     });
     QObject::connect(lePeripheralServices[0].get(), 
&QLowEnergyService::errorOccurred,
-                     [this](QLowEnergyService::ServiceError error){
+                     this, [this](QLowEnergyService::ServiceError error){
         qDebug() << "LE peripheral service errorOccurred:" << error;
         emit leChanged();
     });
     QObject::connect(lePeripheralServices[0].get(), 
&QLowEnergyService::stateChanged,
-                     [this](QLowEnergyService::ServiceState state){
+                     this, [this](QLowEnergyService::ServiceState state) {
         qDebug() << "LE peripheral service state changed:" << state;
         emit leChanged();
     });
@@ -1293,25 +1293,26 @@
     }
 
     QObject::connect(leCentralController.get(), 
&QLowEnergyController::errorOccurred,
-                     [](QLowEnergyController::Error error) {
+                     this, [](QLowEnergyController::Error error) {
         qDebug() << "QLowEnergyController central errorOccurred:" << error;
     });
-    QObject::connect(leCentralController.get(), 
&QLowEnergyController::discoveryFinished, []() {
+    QObject::connect(leCentralController.get(), 
&QLowEnergyController::discoveryFinished,
+                     this, []() {
         qDebug() << "QLowEnergyController central service discovery finished";
     });
     QObject::connect(leCentralController.get(), 
&QLowEnergyController::serviceDiscovered,
-                     [](const QBluetoothUuid &newService){
+                     this, [](const QBluetoothUuid &newService){
         qDebug() << "QLowEnergyController central service discovered:" << 
newService;
     });
     QObject::connect(leCentralController.get(), 
&QLowEnergyController::stateChanged,
-                     [this](QLowEnergyController::ControllerState state) {
+                     this, [this](QLowEnergyController::ControllerState state) 
{
         qDebug() << "QLowEnergyController central stateChanged:" << state;
         if (state == QLowEnergyController::UnconnectedState)
             latestRSSI = "N/A"_ba;
         emit leChanged();
     });
     QObject::connect(leCentralController.get(), 
&QLowEnergyController::rssiRead,
-                     [this](qint16 rssi) {
+                     this, [this](qint16 rssi) {
         qDebug() << "QLowEnergyController central RSSI updated:" << rssi;
         latestRSSI = QByteArray::number(rssi);
         emit leChanged();
@@ -1333,33 +1334,33 @@
          return;
      }
      QObject::connect(leCentralService.get(), &QLowEnergyService::stateChanged,
-                      [this](QLowEnergyService::ServiceState state){
+                      this, [this](QLowEnergyService::ServiceState state) {
          qDebug() << "LE central service state changed:" << state;
          emit leChanged();
      });
      QObject::connect(leCentralService.get(), 
&QLowEnergyService::characteristicWritten,
-                      [](const QLowEnergyCharacteristic&, const QByteArray& 
value){
+                      this, [](const QLowEnergyCharacteristic&, const 
QByteArray& value){
          qDebug() << "LE central service characteristic value written" << 
value;
      });
      QObject::connect(leCentralService.get(), 
&QLowEnergyService::characteristicRead,
-                      [](const QLowEnergyCharacteristic&, const QByteArray& 
value){
+                      this, [](const QLowEnergyCharacteristic&, const 
QByteArray& value){
          qDebug() << "LE central service characteristic value read" << value;
      });
      QObject::connect(leCentralService.get(), 
&QLowEnergyService::characteristicChanged,
-                      [](const QLowEnergyCharacteristic&, const QByteArray& 
value){
+                      this, [](const QLowEnergyCharacteristic&, const 
QByteArray& value){
          qDebug() << "LE central service characteristic value changed" << 
value;
      });
      QObject::connect(leCentralService.get(), 
&QLowEnergyService::descriptorRead,
-                      [](const QLowEnergyDescriptor&, const QByteArray& value){
+                      this, [](const QLowEnergyDescriptor&, const QByteArray& 
value) {
          qDebug() << "LE central service descriptor value read" << value;
      });
      QObject::connect(leCentralService.get(), 
&QLowEnergyService::descriptorWritten,
-                      [this](const QLowEnergyDescriptor&, const QByteArray& 
value){
+                      this, [this](const QLowEnergyDescriptor&, const 
QByteArray& value){
          qDebug() << "LE central service descriptor value written" << value;
          emit leChanged();
      });
      QObject::connect(leCentralService.get(), 
&QLowEnergyService::errorOccurred,
-                      [](QLowEnergyService::ServiceError error){
+                      this, [](QLowEnergyService::ServiceError error){
          qDebug() << "LE central service error occurred:" << error;
      });
      leCentralService->discoverDetails(QLowEnergyService::FullDiscovery);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/bttestui/main.cpp 
new/qtconnectivity-everywhere-src-6.11.1/tests/bttestui/main.cpp
--- old/qtconnectivity-everywhere-src-6.11.0/tests/bttestui/main.cpp    
2026-03-10 06:07:27.000000000 +0100
+++ new/qtconnectivity-everywhere-src-6.11.1/tests/bttestui/main.cpp    
2026-05-08 03:18:46.000000000 +0200
@@ -26,7 +26,7 @@
     auto permissionStatus = app.checkPermission(QBluetoothPermission{});
     if (permissionStatus == Qt::PermissionStatus::Undetermined) {
         app.requestPermission(QBluetoothPermission{},
-                              [&permissionStatus](const QPermission 
&permission) {
+                              &app, [&permissionStatus](const QPermission 
&permission) {
             qApp->exit(); // Exit the permission request processing started 
below
             permissionStatus = permission.status();
         });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/manual/examples/btscanner/main.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/manual/examples/btscanner/main.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/manual/examples/btscanner/main.cpp
   2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/manual/examples/btscanner/main.cpp
   2026-05-08 03:18:46.000000000 +0200
@@ -22,8 +22,8 @@
 #if QT_CONFIG(permissions)
     const auto permissionStatus = app.checkPermission(QBluetoothPermission{});
     if (permissionStatus == Qt::PermissionStatus::Undetermined) {
-        app.requestPermission(QBluetoothPermission{}, [](const QPermission &){
-        });
+        app.requestPermission(QBluetoothPermission{},
+                              &app, [](const QPermission &) { });
     }
     // Else means either 'Granted' or 'Denied' and both normally must be
     // changed using the system's settings application.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/manual/qlowenergycontroller/tst_qlowenergycontroller_device.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/manual/qlowenergycontroller/tst_qlowenergycontroller_device.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/manual/qlowenergycontroller/tst_qlowenergycontroller_device.cpp
      2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/manual/qlowenergycontroller/tst_qlowenergycontroller_device.cpp
      2026-05-08 03:18:46.000000000 +0200
@@ -135,7 +135,8 @@
     permissionStatus = qApp->checkPermission(QBluetoothPermission{});
     if (qApp->checkPermission(QBluetoothPermission{}) == 
Qt::PermissionStatus::Undetermined) {
         QTestEventLoop loop;
-        qApp->requestPermission(QBluetoothPermission{}, [this, &loop](const 
QPermission &permission){
+        qApp->requestPermission(QBluetoothPermission{},
+                                 &loop, [this, &loop](const QPermission 
&permission) {
             permissionStatus = permission.status();
             loop.exitLoop();
         });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.11.0/tests/manual/qlowenergycontroller_peripheral/tst_qlowenergycontroller_peripheral.cpp
 
new/qtconnectivity-everywhere-src-6.11.1/tests/manual/qlowenergycontroller_peripheral/tst_qlowenergycontroller_peripheral.cpp
--- 
old/qtconnectivity-everywhere-src-6.11.0/tests/manual/qlowenergycontroller_peripheral/tst_qlowenergycontroller_peripheral.cpp
       2026-03-10 06:07:27.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.11.1/tests/manual/qlowenergycontroller_peripheral/tst_qlowenergycontroller_peripheral.cpp
       2026-05-08 03:18:46.000000000 +0200
@@ -57,7 +57,8 @@
     // change is in qtbase.
     if (qApp->checkPermission(QBluetoothPermission{}) == 
Qt::PermissionStatus::Undetermined) {
         QTestEventLoop loop;
-        qApp->requestPermission(QBluetoothPermission{}, [&permissionStatus, 
&loop](const QPermission &permission){
+        qApp->requestPermission(QBluetoothPermission{},
+                                &loop, [&permissionStatus, &loop](const 
QPermission &permission){
             permissionStatus = permission.status();
             loop.exitLoop();
         });

Reply via email to