From 321492e10eeb5700a31c98aa35fe1e489443a9e5 Mon Sep 17 00:00:00 2001 From: wangjialiang Date: Tue, 4 Aug 2026 16:59:06 +0800 Subject: [PATCH] fix(iso): correct ISO data length mask from 0x7fff to 0x3fff (cherry picked from commit b0f2f482d64e1d0c5f1ba2817f54d12fcb870e75) Co-authored-by: wangjialiang --- components/bt/porting/transport/driver/common/hci_driver_h4.c | 2 +- .../bt/porting_btdm/transport/driver/common/hci_driver_h4.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/bt/porting/transport/driver/common/hci_driver_h4.c b/components/bt/porting/transport/driver/common/hci_driver_h4.c index 2911289cef7..132c568e343 100644 --- a/components/bt/porting/transport/driver/common/hci_driver_h4.c +++ b/components/bt/porting/transport/driver/common/hci_driver_h4.c @@ -178,7 +178,7 @@ hci_h4_sm_w4_header(struct hci_h4_sm *h4sm, struct hci_h4_input_buffer *ib) } os_mbuf_append(h4sm->om, h4sm->hdr, h4sm->len); - h4sm->exp_len = (get_le16(&h4sm->hdr[2]) & 0x7fff) + 4; + h4sm->exp_len = (get_le16(&h4sm->hdr[2]) & 0x3fff) + 4; break; default: return -2; diff --git a/components/bt/porting_btdm/transport/driver/common/hci_driver_h4.c b/components/bt/porting_btdm/transport/driver/common/hci_driver_h4.c index c0eecf93030..76d9d7924a8 100644 --- a/components/bt/porting_btdm/transport/driver/common/hci_driver_h4.c +++ b/components/bt/porting_btdm/transport/driver/common/hci_driver_h4.c @@ -227,7 +227,7 @@ hci_h4_sm_w4_header(struct hci_h4_sm *h4sm, struct hci_h4_input_buffer *ib) #endif // !CONFIG_BT_CONTROLLER_ENABLED #if CONFIG_BT_LE_ISO_SUPPORT case HCI_H4_ISO: - h4sm->exp_len = (btdm_get_le16(&h4sm->hdr[2]) & 0x7fff) + 4; + h4sm->exp_len = (btdm_get_le16(&h4sm->hdr[2]) & 0x3fff) + 4; h4sm->buf = h4sm->allocs->iso(h4sm->exp_len); if (!h4sm->buf) { return -1;