From 1249ddd55ec42dfcb445f21bb356065d75cc926d Mon Sep 17 00:00:00 2001 From: "Jamie C. Driver" Date: Fri, 5 Apr 2024 11:02:49 +0100 Subject: [PATCH] qrmode: free gui memory before qr pin unlock --- main/process/auth_user.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main/process/auth_user.c b/main/process/auth_user.c index 36db9a9c..8d6e3a4e 100644 --- a/main/process/auth_user.c +++ b/main/process/auth_user.c @@ -80,7 +80,8 @@ static bool get_pin_get_aeskey(jade_process_t* process, const char* title, uint8 JADE_ASSERT(pin_insert.activity); SENSITIVE_PUSH(&pin_insert, sizeof(pin_insert_t)); - gui_set_current_activity(pin_insert.activity); + // If getting PIN via QRs, free gui memory before attempting QR roundtrip + gui_set_current_activity_ex(pin_insert.activity, process->ctx.source == SOURCE_INTERNAL); // In a debug unattended ci build, use hardcoded pin after a short delay #ifndef CONFIG_DEBUG_UNATTENDED_CI @@ -120,7 +121,8 @@ static bool set_pin_get_aeskey(jade_process_t* process, const char* title, uint8 SENSITIVE_PUSH(&pin_insert, sizeof(pin_insert_t)); while (true) { - gui_set_current_activity(pin_insert.activity); + // If getting PIN via QRs, free gui memory before attempting QR roundtrip + gui_set_current_activity_ex(pin_insert.activity, process->ctx.source == SOURCE_INTERNAL); #ifndef CONFIG_DEBUG_UNATTENDED_CI run_pin_entry_loop(&pin_insert);