summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/bluetooth/bluez/hcimanager.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/bluetooth/bluez/hcimanager.cpp b/src/bluetooth/bluez/hcimanager.cpp
index dfb99d5a..93bf941b 100644
--- a/src/bluetooth/bluez/hcimanager.cpp
+++ b/src/bluetooth/bluez/hcimanager.cpp
@@ -477,6 +477,11 @@ void HciManager::handleHciAclPacket(const quint8 *data, int size)
const AclData *aclData = reinterpret_cast<AclData *>(rawAclData);
data += sizeof *aclData;
size -= sizeof *aclData;
+
+ // Consider only directed, complete messages.
+ if ((aclData->pbFlag != 0 && aclData->pbFlag != 2) || aclData->bcFlag != 0)
+ return;
+
if (size < aclData->dataLen) {
qCWarning(QT_BT_BLUEZ) << "HCI ACL packet data size" << size
<< "is smaller than specified size" << aclData->dataLen;
@@ -486,10 +491,6 @@ void HciManager::handleHciAclPacket(const quint8 *data, int size)
// qCDebug(QT_BT_BLUEZ) << "handle:" << aclData->handle << "PB:" << aclData->pbFlag
// << "BC:" << aclData->bcFlag << "data len:" << aclData->dataLen;
- // Consider only directed, complete messages.
- if ((aclData->pbFlag != 0 && aclData->pbFlag != 2) || aclData->bcFlag != 0)
- return;
-
if (size < int(sizeof(L2CapHeader))) {
qCWarning(QT_BT_BLUEZ) << "Unexpected HCI ACL packet size";
return;