This is an automated email from the ASF dual-hosted git repository.

sjanc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git


The following commit(s) were added to refs/heads/master by this push:
     new dcc4e4f02 nimble/transport/socket: Drop too big HCI events
dcc4e4f02 is described below

commit dcc4e4f026109eecd507de9479bb5019306a4a41
Author: Szymon Janc <[email protected]>
AuthorDate: Fri May 8 12:48:49 2026 +0200

    nimble/transport/socket: Drop too big HCI events
    
    If received H4 event is too big for configured mempool just drop it.
---
 nimble/transport/socket/src/ble_hci_socket.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/nimble/transport/socket/src/ble_hci_socket.c 
b/nimble/transport/socket/src/ble_hci_socket.c
index fb4fc75ff..ccd67855d 100644
--- a/nimble/transport/socket/src/ble_hci_socket.c
+++ b/nimble/transport/socket/src/ble_hci_socket.c
@@ -489,6 +489,15 @@ ble_hci_sock_rx_msg(void)
             }
             STATS_INC(hci_sock_stats, imsg);
             STATS_INC(hci_sock_stats, ievt);
+
+            /* There isn't much we can do if received event is too big */
+            if (len - 1 > MYNEWT_VAL(BLE_TRANSPORT_EVT_SIZE)) {
+                STATS_INC(hci_sock_stats, ierr);
+                dprintf(1, "Too big HCI event (%d > %d), ignoring\n", len - 1,
+                        MYNEWT_VAL(BLE_TRANSPORT_EVT_SIZE));
+                return -1;
+            }
+
             data = ble_transport_alloc_evt(0);
             if (!data) {
                 STATS_INC(hci_sock_stats, ierr);

Reply via email to