diff --git a/nimble/host/src/ble_sm.c b/nimble/host/src/ble_sm.c index bb1dfe084..4278b7f85 100644 --- a/nimble/host/src/ble_sm.c +++ b/nimble/host/src/ble_sm.c @@ -2007,6 +2007,13 @@ ble_sm_sec_req_rx(uint16_t conn_handle, struct os_mbuf **om, ble_hs_lock(); conn = ble_hs_conn_find_assert(conn_handle); + + if (ble_sm_proc_find(conn_handle, BLE_SM_PROC_STATE_PAIR, 1, NULL)) { + ble_hs_unlock(); + res->app_status = 0; + return; + } + if (!(conn->bhc_flags & BLE_HS_CONN_F_MASTER)) { res->app_status = BLE_HS_SM_US_ERR(BLE_SM_ERR_CMD_NOT_SUPP); res->sm_err = BLE_SM_ERR_CMD_NOT_SUPP;