From c3118e282af90a3a3a5f115f095e6d2e4e072440 Mon Sep 17 00:00:00 2001 From: keiff3r Date: Wed, 6 Nov 2024 13:25:08 +0100 Subject: [PATCH 01/14] fix: resolve possible out of bound issue --- src/handler/withdraw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/handler/withdraw.c b/src/handler/withdraw.c index 210c77b3..4335b238 100644 --- a/src/handler/withdraw.c +++ b/src/handler/withdraw.c @@ -188,7 +188,9 @@ static bool display_data_content_and_confirm(dispatcher_context_t* dc, value_with_ticker[i] == '.') { i--; } - value_with_ticker[i + 1] = '\0'; + if (i >= 0) { + value_with_ticker[i + 1] = '\0'; + } // Get the second chunk that contains the data to display call_get_merkle_leaf_element(dc, data_merkle_root, From cede99355de66041a5af05a6cc8147f4d194f0ba Mon Sep 17 00:00:00 2001 From: keiff3r Date: Wed, 6 Nov 2024 13:34:26 +0100 Subject: [PATCH 02/14] fix: patch potential integer underflow --- src/handler/withdraw.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/handler/withdraw.c b/src/handler/withdraw.c index 4335b238..f4902b7c 100644 --- a/src/handler/withdraw.c +++ b/src/handler/withdraw.c @@ -266,6 +266,10 @@ void add_leading_zeroes(uint8_t* dest_buffer, PRINTF("Error: Null buffer\n"); return; } + if (dest_size < src_size) { + PRINTF("Error: Destination buffer is too small\n"); + return; + } // Clear the destination buffer memset(dest_buffer, 0, dest_size); From 1f68a32a573764ae5e7e52bad9cefa407197d8ab Mon Sep 17 00:00:00 2001 From: keiff3r Date: Wed, 6 Nov 2024 13:53:56 +0100 Subject: [PATCH 03/14] fix: disable debuging --- Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 551488bf..a91be912 100644 --- a/Makefile +++ b/Makefile @@ -158,8 +158,6 @@ DEFINES += HAVE_BOLOS_APP_STACK_CANARY DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=300 -# debugging helper functions and macros -CFLAGS += -g -include debug-helpers/debug.h # DEFINES += HAVE_PRINT_STACK_POINTER @@ -169,6 +167,10 @@ ifeq ($(DEBUG),10) DEFINES += HAVE_PRINTF HAVE_SEMIHOSTED_PRINTF PRINTF=semihosted_printf endif +ifeq ($(DEBUG),1) + # debugging helper functions and macros + CFLAGS += -include debug-helpers/debug.h -g +endif # Needed to be able to include the definition of G_cx INCLUDES_PATH += $(BOLOS_SDK)/lib_cxng/src From f958dd5b041ca84dda7658e46e37b2d684b734a7 Mon Sep 17 00:00:00 2001 From: keiff3r Date: Wed, 6 Nov 2024 15:56:37 +0100 Subject: [PATCH 04/14] fix: add a check before using variable --- src/handler/sign_erc4361_message.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/handler/sign_erc4361_message.c b/src/handler/sign_erc4361_message.c index 1014bd94..a911b840 100644 --- a/src/handler/sign_erc4361_message.c +++ b/src/handler/sign_erc4361_message.c @@ -311,9 +311,14 @@ void handler_sign_erc4361_message(dispatcher_context_t *dc, uint8_t protocol_ver } // # Format signature into standard bitcoin format int r_length = sig[3]; - int s_length = sig[4 + r_length + 1]; + if (r_length < 0 || r_length > 33) { + SAFE_SEND_SW(dc, SW_BAD_STATE); // can never happen + ui_post_processing_confirm_message(dc, false); + return; + } - if (r_length > 33 || s_length > 33) { + int s_length = sig[4 + r_length + 1]; + if (s_length < 0 || s_length > 33) { SAFE_SEND_SW(dc, SW_BAD_STATE); // can never happen ui_post_processing_confirm_message(dc, false); return; From 7a10c0943791d8aec9953f16b35e238cc080d9f2 Mon Sep 17 00:00:00 2001 From: keiff3r Date: Wed, 6 Nov 2024 17:04:36 +0100 Subject: [PATCH 05/14] fix: handle weakness --- src/handler/lib/get_merkle_preimage.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/handler/lib/get_merkle_preimage.c b/src/handler/lib/get_merkle_preimage.c index b1ac09fa..0dd9c1ad 100644 --- a/src/handler/lib/get_merkle_preimage.c +++ b/src/handler/lib/get_merkle_preimage.c @@ -63,7 +63,11 @@ int call_get_merkle_preimage(dispatcher_context_t *dispatcher_context, cx_sha256_init(&hash_context); // update hash - crypto_hash_update(&hash_context.header, data_ptr, partial_data_len); + int ret = cx_hash_no_throw(&hash_context.header, 0, data_ptr, partial_data_len, NULL, 0); + if (ret != 0) { + PRINTF("Error updating hash\n"); + return -11; + } buffer_t out_buffer = buffer_create(out_ptr, out_ptr_len); @@ -98,10 +102,17 @@ int call_get_merkle_preimage(dispatcher_context_t *dispatcher_context, } // update hash - crypto_hash_update( + ret = cx_hash_no_throw( &hash_context.header, + 0, dispatcher_context->read_buffer.ptr + dispatcher_context->read_buffer.offset, - n_bytes); + n_bytes, + NULL, + 0); + if (ret != 0) { + PRINTF("Error updating hash\n"); + return -12; + } // write bytes to output buffer_write_bytes(&out_buffer, data_ptr, n_bytes); From e3c24ae1face303f49dfa560b10723fee59c95bc Mon Sep 17 00:00:00 2001 From: keiff3r Date: Thu, 7 Nov 2024 12:02:52 +0100 Subject: [PATCH 06/14] fix: add a condition in display_data_content_and_confirm --- src/handler/withdraw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/handler/withdraw.c b/src/handler/withdraw.c index f4902b7c..c8eef102 100644 --- a/src/handler/withdraw.c +++ b/src/handler/withdraw.c @@ -188,7 +188,7 @@ static bool display_data_content_and_confirm(dispatcher_context_t* dc, value_with_ticker[i] == '.') { i--; } - if (i >= 0) { + if (i >= 0 && i < sizeof(value_with_ticker)) { value_with_ticker[i + 1] = '\0'; } // Get the second chunk that contains the data to display From e6b9553e04bf2246152b69dcc74277142992aa7d Mon Sep 17 00:00:00 2001 From: keiff3r Date: Thu, 7 Nov 2024 12:05:56 +0100 Subject: [PATCH 07/14] chore: bump version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a91be912..96dbc721 100644 --- a/Makefile +++ b/Makefile @@ -45,7 +45,7 @@ PATH_APP_LOAD_PARAMS = "44'/0'" "44'/1'" "48'/0'" "48'/1'" "49'/0'" "49'/1'" "84 # Application version APPVERSION_M = 1 APPVERSION_N = 1 -APPVERSION_P = 1 +APPVERSION_P = 2 APPVERSION_SUFFIX = # if not empty, appended at the end. Do not add a dash. ifeq ($(APPVERSION_SUFFIX),) From 3443fb6b2576db53ad756fece137b0c30f5de08d Mon Sep 17 00:00:00 2001 From: keiff3r Date: Thu, 7 Nov 2024 12:13:45 +0100 Subject: [PATCH 08/14] fix: remove compilation warning --- src/handler/withdraw.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/handler/withdraw.c b/src/handler/withdraw.c index c8eef102..48fe73ed 100644 --- a/src/handler/withdraw.c +++ b/src/handler/withdraw.c @@ -183,12 +183,16 @@ static bool display_data_content_and_confirm(dispatcher_context_t* dc, snprintf(value_with_ticker, sizeof(value_with_ticker), "stBTC %s", value); // Trim the value of trailing zeros in a char of size of value - int i = sizeof(value_with_ticker) - 1; + int value_with_ticker_len = sizeof(value_with_ticker) - 1; + int i = value_with_ticker_len; while (value_with_ticker[i] == '0' || value_with_ticker[i] == '\0' || value_with_ticker[i] == '.') { + if (i == 0) { + break; + } i--; } - if (i >= 0 && i < sizeof(value_with_ticker)) { + if (i < value_with_ticker_len) { value_with_ticker[i + 1] = '\0'; } // Get the second chunk that contains the data to display From a7d8e220635531c571b7cf4563538cbe56d2d0f1 Mon Sep 17 00:00:00 2001 From: keiff3r Date: Thu, 7 Nov 2024 14:07:59 +0100 Subject: [PATCH 09/14] fix: always include debug helpers header - Move debug-helpers/debug.h inclusion out of DEBUG=1 condition - Keep -g flag only for debug builds --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 96dbc721..d95d1e6d 100644 --- a/Makefile +++ b/Makefile @@ -158,6 +158,8 @@ DEFINES += HAVE_BOLOS_APP_STACK_CANARY DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=300 +# debugging helper functions and macros +CFLAGS += -include debug-helpers/debug.h # DEFINES += HAVE_PRINT_STACK_POINTER @@ -168,8 +170,7 @@ ifeq ($(DEBUG),10) endif ifeq ($(DEBUG),1) - # debugging helper functions and macros - CFLAGS += -include debug-helpers/debug.h -g + CFLAGS += -g endif # Needed to be able to include the definition of G_cx INCLUDES_PATH += $(BOLOS_SDK)/lib_cxng/src From a71d92ea9cac8a4b3732ac768335fee36e8792b6 Mon Sep 17 00:00:00 2001 From: keiff3r Date: Thu, 7 Nov 2024 14:16:05 +0100 Subject: [PATCH 10/14] test: generate golden snapshots --- tests/snapshots/flex/test_dashboard/00001.png | Bin 10331 -> 10586 bytes .../snapshots/nanosp/test_dashboard/00001.png | Bin 322 -> 350 bytes .../snapshots/nanox/test_dashboard/00001.png | Bin 322 -> 350 bytes tests/snapshots/stax/test_dashboard/00001.png | Bin 9374 -> 9614 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/snapshots/flex/test_dashboard/00001.png b/tests/snapshots/flex/test_dashboard/00001.png index f84525bf25d3b372edcbed1cd1c0d70fad017672..5011f8ce4dd85cdd7343677a9c0bc8991c58b4e7 100644 GIT binary patch literal 10586 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 Xa+V-c8v(vE2^bsP)~~$o{OErHZWN?g literal 10331 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 diff --git a/tests/snapshots/nanox/test_dashboard/00001.png b/tests/snapshots/nanox/test_dashboard/00001.png index 7b1ea9f79fce3f0f19c8de45ded06cd309546dd3..348afa1da2ea53b8052f5d85a7c2c3a6029495de 100644 GIT binary patch delta 323 zcmX@abdPC*O1-M5i(^Q|oVPa<`I;4Y+7h?DQM>csWAEv@2^0BPoNPi~YQ0zB@1AuRdbCV`oL{p)v7Wttit5Vnrz-ER=-y7d+Rs*XdhaIv z14nE&Eeo;xeD~=`!7r6l7C-l|zm!{fi)lvA<1DMQjeBzXF0EaB#C>g8*(2WVoqZV+ zMla*jl(R1FmoVLMB>05T{=?ILRphIEwn*7DRmOB@)otPE&Z5uz=9rk)+I;@uA2D0! zp=sFm?@T)RPnm35DxA0HFgh)nAExUtT22B!3A>L_t(|obA|MZiFBh1yIv;C+vSo?4=K62*tl@TR&*ec`_n~ z+{>t$WdQ&H000000RE_)bIy5v{LNd<;yro+KPjaYy@bogEuh`YCE1*FN~xT$2i*lr zQ$xL=J=0Dcp|H2;1#GKPw#hD^TPf-_dw1w&l@5Mq)px}I0)NVuY7@dX?>j;yO{%zRIc_z3!XlzY#g^~quD=?e(?jH~H%2l-`lRy(?v_}*xglX$25 zh@R1I$kKnzM%2=Om<}R&3PtiBjx=Swr(dF1hq$1GxEbZWA?`Sc^4`!mM*J({Ur|6X t1q4$-u=xs@{UEIi000000000y;{%sCyO^9rpy&Vq002ovPDHLkV1ghVjRpV! diff --git a/tests/snapshots/stax/test_dashboard/00001.png b/tests/snapshots/stax/test_dashboard/00001.png index 19641a272774bdac3255a80e61883fe0e39180aa..c02ba0ae1f09b273846f9d511a9fedcdf641479f 100644 GIT binary patch literal 9614 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 literal 9374 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 From 256eecced3135e2edf1dd67caf6bb3377217c5c9 Mon Sep 17 00:00:00 2001 From: keiff3r Date: Thu, 7 Nov 2024 15:05:23 +0100 Subject: [PATCH 11/14] style: change copyright from Blooo to Acre - change 'Blooo' to 'Acre' - generate golden snapshots --- src/ui/menu_nbgl.c | 2 +- tests/snapshots/flex/test_dashboard/00001.png | Bin 10586 -> 10625 bytes tests/snapshots/stax/test_dashboard/00001.png | Bin 9614 -> 9659 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/menu_nbgl.c b/src/ui/menu_nbgl.c index b64c9bb4..5d5fe0aa 100644 --- a/src/ui/menu_nbgl.c +++ b/src/ui/menu_nbgl.c @@ -23,7 +23,7 @@ #define SETTING_INFO_NB 3 static const char* const INFO_TYPES[SETTING_INFO_NB] = {"Version", "Developer", "Copyright"}; -static const char* const INFO_CONTENTS[SETTING_INFO_NB] = {APPVERSION, "Blooo", "(c) 2024 Blooo"}; +static const char* const INFO_CONTENTS[SETTING_INFO_NB] = {APPVERSION, "Blooo", "(c) 2024 Acre"}; static const nbgl_contentInfoList_t infoList = { .nbInfos = SETTING_INFO_NB, diff --git a/tests/snapshots/flex/test_dashboard/00001.png b/tests/snapshots/flex/test_dashboard/00001.png index 5011f8ce4dd85cdd7343677a9c0bc8991c58b4e7..20685a675e52508918a117d7d28ab13d7d483d55 100644 GIT binary patch literal 10625 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 RJX#4@TiRMw{eCy$zX0fZZPow) literal 10586 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 Xa+V-c8v(vE2^bsP)~~$o{OErHZWN?g diff --git a/tests/snapshots/stax/test_dashboard/00001.png b/tests/snapshots/stax/test_dashboard/00001.png index c02ba0ae1f09b273846f9d511a9fedcdf641479f..7d4dd2f9b49e1dbc25c21049a205896a166f555a 100644 GIT binary patch literal 9659 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 From f560302ae8e2c9c3c924b2ddf38bf7a4718fb338 Mon Sep 17 00:00:00 2001 From: keiff3r Date: Thu, 7 Nov 2024 15:15:16 +0100 Subject: [PATCH 12/14] chore: update Makefile for debug configuration - Remove inclusion of debug-helpers/debug.h from default CFLAGS. - Add inclusion of debug-helpers/debug.h to CFLAGS only when DEBUG=1. - Ensure CFLAGS includes -g for debugging when DEBUG=1. --- Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index d95d1e6d..96dbc721 100644 --- a/Makefile +++ b/Makefile @@ -158,8 +158,6 @@ DEFINES += HAVE_BOLOS_APP_STACK_CANARY DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=300 -# debugging helper functions and macros -CFLAGS += -include debug-helpers/debug.h # DEFINES += HAVE_PRINT_STACK_POINTER @@ -170,7 +168,8 @@ ifeq ($(DEBUG),10) endif ifeq ($(DEBUG),1) - CFLAGS += -g + # debugging helper functions and macros + CFLAGS += -include debug-helpers/debug.h -g endif # Needed to be able to include the definition of G_cx INCLUDES_PATH += $(BOLOS_SDK)/lib_cxng/src From 4a187a7569511ec77eb86804a5f83e9e4d4d64cc Mon Sep 17 00:00:00 2001 From: n4l5u0r <59141606+n4l5u0r@users.noreply.github.com> Date: Thu, 7 Nov 2024 16:38:54 +0100 Subject: [PATCH 13/14] fix: added missing refs for debug tools --- .gitignore | 2 ++ .vscode/settings.json | 7 +++++-- src/debug-helpers/debug.c | 1 + src/swap/handle_get_printable_amount.c | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 4c87dc88..a17d84a7 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,5 @@ doc/latex tests/snapshots-tmp tests/bitcoin + +.DS_Store \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 093c26db..80ba863a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,9 @@ "C_Cpp.clang_format_path": "/usr/bin/clang-format", "editor.formatOnSave": true, "ledgerDevTools.appSettings": { - "selectedUseCase": "release" - } + "selectedUseCase": "release", + "selectedDevice": "Nano S Plus", + "selectedVariant": "acre_testnet" + }, + "makefile.configureOnOpen": false } \ No newline at end of file diff --git a/src/debug-helpers/debug.c b/src/debug-helpers/debug.c index d01f2436..dc80223c 100644 --- a/src/debug-helpers/debug.c +++ b/src/debug-helpers/debug.c @@ -1,6 +1,7 @@ #include #include #include "printf.h" +#include "debug.h" #pragma GCC diagnostic ignored "-Wunused-function" diff --git a/src/swap/handle_get_printable_amount.c b/src/swap/handle_get_printable_amount.c index 3e50c0fe..2e04f4f3 100644 --- a/src/swap/handle_get_printable_amount.c +++ b/src/swap/handle_get_printable_amount.c @@ -1,5 +1,6 @@ #include #include +#include "debug-helpers/debug.h" #include "handle_get_printable_amount.h" From 6b22bc51c4eb61168e2765839c63997efea0de29 Mon Sep 17 00:00:00 2001 From: keiff3r Date: Thu, 7 Nov 2024 16:53:14 +0100 Subject: [PATCH 14/14] style: change developer from Blooo to Acre - change "Blooo" to "Acre" - generate golden snapshots --- src/ui/menu_nbgl.c | 2 +- tests/snapshots/flex/test_dashboard/00001.png | Bin 10625 -> 10795 bytes tests/snapshots/stax/test_dashboard/00001.png | Bin 9659 -> 9759 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/menu_nbgl.c b/src/ui/menu_nbgl.c index 5d5fe0aa..9a541dcf 100644 --- a/src/ui/menu_nbgl.c +++ b/src/ui/menu_nbgl.c @@ -23,7 +23,7 @@ #define SETTING_INFO_NB 3 static const char* const INFO_TYPES[SETTING_INFO_NB] = {"Version", "Developer", "Copyright"}; -static const char* const INFO_CONTENTS[SETTING_INFO_NB] = {APPVERSION, "Blooo", "(c) 2024 Acre"}; +static const char* const INFO_CONTENTS[SETTING_INFO_NB] = {APPVERSION, "Acre", "(c) 2024 Acre"}; static const nbgl_contentInfoList_t infoList = { .nbInfos = SETTING_INFO_NB, diff --git a/tests/snapshots/flex/test_dashboard/00001.png b/tests/snapshots/flex/test_dashboard/00001.png index 20685a675e52508918a117d7d28ab13d7d483d55..23cb59d234abc28dc96873b158acb33b0d82f453 100644 GIT binary patch literal 10795 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 literal 10625 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 RJX#4@TiRMw{eCy$zX0fZZPow) diff --git a/tests/snapshots/stax/test_dashboard/00001.png b/tests/snapshots/stax/test_dashboard/00001.png index 7d4dd2f9b49e1dbc25c21049a205896a166f555a..ee7fc4081fe888503ea08b2d7a5de0a12eced597 100644 GIT binary patch literal 9759 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 R02{wR7UnjWt1o)q`!BGm`osVL literal 9659 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