fix(nimble): Added checks before accessing event pointers

This commit is contained in:
2024-02-20 12:22:49 +05:30
committed by Abhinav Kudnar
parent d1587360c0
commit 4f635e7331
2 changed files with 19 additions and 8 deletions
+5 -4
View File
@@ -252,11 +252,12 @@ IRAM_ATTR nimble_port_run(void)
while (1) {
ev = ble_npl_eventq_get(&g_eventq_dflt, BLE_NPL_TIME_FOREVER);
ble_npl_event_run(ev);
if (ev == &ble_hs_ev_stop) {
break;
if (ev) {
ble_npl_event_run(ev);
if (ev == &ble_hs_ev_stop) {
break;
}
}
}
}
+14 -4
View File
@@ -447,7 +447,9 @@ void
IRAM_ATTR npl_freertos_event_run(struct ble_npl_event *ev)
{
struct ble_npl_event_freertos *event = (struct ble_npl_event_freertos *)ev->event;
event->fn(ev);
if (event) {
event->fn(ev);
}
}
bool
@@ -461,21 +463,29 @@ bool
IRAM_ATTR npl_freertos_event_is_queued(struct ble_npl_event *ev)
{
struct ble_npl_event_freertos *event = (struct ble_npl_event_freertos *)ev->event;
return event->queued;
if (event) {
return event->queued;
}
return false;
}
void *
IRAM_ATTR npl_freertos_event_get_arg(struct ble_npl_event *ev)
{
struct ble_npl_event_freertos *event = (struct ble_npl_event_freertos *)ev->event;
return event->arg;
if (event) {
return event->arg;
}
return NULL;
}
void
IRAM_ATTR npl_freertos_event_set_arg(struct ble_npl_event *ev, void *arg)
{
struct ble_npl_event_freertos *event = (struct ble_npl_event_freertos *)ev->event;
event->arg = arg;
if (event) {
event->arg = arg;
}
}