diff --git a/src/handle_swap_sign_transaction.c b/src/handle_swap_sign_transaction.c index 75e4d3a..39268f5 100644 --- a/src/handle_swap_sign_transaction.c +++ b/src/handle_swap_sign_transaction.c @@ -1,4 +1,5 @@ #include "os_io_seproxyhal.h" +#include "os.h" #include "ux.h" #include "handle_swap_sign_transaction.h" #include "shared_context.h" @@ -45,6 +46,7 @@ bool copy_transaction_parameters(create_transaction_parameters_t* sign_transacti stack_data.maxFee, sizeof(stack_data.maxFee)); + os_explicit_zero_BSS_segment(); memcpy(&strings.common, &stack_data, sizeof(stack_data)); return true; } diff --git a/src/main.c b/src/main.c index a483bf4..d66dbb1 100644 --- a/src/main.c +++ b/src/main.c @@ -1067,7 +1067,7 @@ void library_main(struct libargs_s *args) { init_coin_config(&coin_config); args->chain_config = &coin_config; } - bool end = false; + volatile bool end = false; /* This loop ensures that library_main_helper and os_lib_end are called * within a try context, even if an exception is thrown */ while (1) {