diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 642bb5c7..9b31a4dd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,4 +16,6 @@ jobs: runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }} has-rust: false has-nanos: false - node-version: '22' \ No newline at end of file + node-version: '22' + permissions: + contents: write # Required for creating releases diff --git a/app/src/json/json_parser.c b/app/src/json/json_parser.c index 2a274636..a95c1d6b 100644 --- a/app/src/json/json_parser.c +++ b/app/src/json/json_parser.c @@ -94,7 +94,7 @@ parser_error_t array_get_element_count(const parsed_json_t *json, } *number_elements = 0; - if (array_token_index > json->numberOfTokens) { + if (array_token_index >= json->numberOfTokens) { return parser_no_data; } @@ -128,7 +128,7 @@ parser_error_t array_get_nth_element(const parsed_json_t *json, return parser_unexpected_value; } - if (array_token_index > json->numberOfTokens) { + if (array_token_index >= json->numberOfTokens) { return parser_no_data; } @@ -167,7 +167,7 @@ parser_error_t object_get_element_count(const parsed_json_t *json, } *element_count = 0; - if (object_token_index > json->numberOfTokens) { + if (object_token_index >= json->numberOfTokens) { return parser_no_data; } @@ -203,7 +203,7 @@ parser_error_t object_get_nth_key(const parsed_json_t *json, } *token_index = object_token_index; - if (object_token_index > json->numberOfTokens) { + if (object_token_index >= json->numberOfTokens) { return parser_no_data; } @@ -242,7 +242,7 @@ parser_error_t object_get_nth_value(const parsed_json_t *json, return parser_unexpected_value; } - if (object_token_index > json->numberOfTokens) { + if (object_token_index >= json->numberOfTokens) { return parser_no_data; } @@ -260,7 +260,7 @@ parser_error_t object_get_value(const parsed_json_t *json, return parser_unexpected_value; } - if (object_token_index > json->numberOfTokens) { + if (object_token_index >= json->numberOfTokens) { return parser_no_data; } diff --git a/app/src/tx_display.c b/app/src/tx_display.c index 993c0e4f..c0da4bb6 100644 --- a/app/src/tx_display.c +++ b/app/src/tx_display.c @@ -694,7 +694,7 @@ parser_error_t tx_display_translation(char *dst, uint16_t dstLen, char *src, } if (src[srcLen - 1] == ' ' || src[srcLen - 1] == '@') { - if (src[dstLen - 1] + 1 > dstLen) { + if (count >= dstLen) { return parser_unexpected_value; } ASSERT_PTR_BOUNDS(count, dstLen);