diff --git a/epicardium/ble/epic_att_api.c b/epicardium/ble/epic_att_api.c index 62f51847a8139dafd3975ec9dd33b1358855ca0b..751c027681b6fdb5a0d77a981c979b208c3bef08 100644 --- a/epicardium/ble/epic_att_api.c +++ b/epicardium/ble/epic_att_api.c @@ -25,13 +25,15 @@ static int next_handle = ATTS_DYN_START_HANDLE; void ble_epic_att_api_event(attEvt_t *att_event) { - attEvt_t *e = WsfBufAlloc(sizeof(*e)); + if(att_event->handle >= ATTS_DYN_START_HANDLE && att_event->handle < next_handle) { + attEvt_t *e = WsfBufAlloc(sizeof(*e)); - if (e) { - memcpy(e, att_event, sizeof(*e)); - ble_epic_ble_api_trigger_event(BLE_EVENT_ATT_EVENT, e); - } else { - LOG_WARN("ble", "could not allocate att event"); + if (e) { + memcpy(e, att_event, sizeof(*e)); + ble_epic_ble_api_trigger_event(BLE_EVENT_ATT_EVENT, e); + } else { + LOG_WARN("ble", "could not allocate att event"); + } } }