From 8d1b44cc9fbc0eb93ab39b071120f2dffe175be5 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Fri, 8 May 2026 12:48:49 +0200 Subject: [PATCH] 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 573c4991e..7440260a5 100644 --- a/nimble/transport/socket/src/ble_hci_socket.c +++ b/nimble/transport/socket/src/ble_hci_socket.c @@ -438,6 +438,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);