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;