mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-08-09 03:27:57 +00:00
fix(nimble): Added checks before accessing event pointers
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user