From 3b954698fa036ab34fe578ce46ff9fa5cf6ca4ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20de=20Giessen?= Date: Mon, 30 Oct 2023 15:25:38 +0100 Subject: [PATCH] extmod/modbluetooth: Initialise nlr_jump_callback_top for IRQ handlers. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Similar to 3883f29485fad21105f6f965d56bfec842b8cfbb where this change was implemented for threads: when the Bluetooth IRQ handler is called the thread state is not not zero-initialized and thus we need to manually set this to NULL. Fixes issue #12239. Signed-off-by: Daniƫl van de Giessen --- extmod/modbluetooth.c | 1 + 1 file changed, 1 insertion(+) diff --git a/extmod/modbluetooth.c b/extmod/modbluetooth.c index 3417df7a27..cef5151cc9 100644 --- a/extmod/modbluetooth.c +++ b/extmod/modbluetooth.c @@ -1276,6 +1276,7 @@ STATIC mp_obj_t invoke_irq_handler(uint16_t event, mp_stack_set_top(&ts + 1); // need to include ts in root-pointer scan mp_stack_set_limit(MICROPY_PY_BLUETOOTH_SYNC_EVENT_STACK_SIZE - 1024); ts.gc_lock_depth = 0; + ts.nlr_jump_callback_top = NULL; ts.mp_pending_exception = MP_OBJ_NULL; mp_locals_set(mp_state_ctx.thread.dict_locals); // set from the outer context mp_globals_set(mp_state_ctx.thread.dict_globals); // set from the outer context