Skip to content

Commit e4a7230

Browse files
Change selector argument type in calldata_init
Also now check return value of calldata_set_selector in EIP-712
1 parent 6083830 commit e4a7230

3 files changed

Lines changed: 9 additions & 4 deletions

File tree

src/features/generic_tx_parser/calldata.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
#include "mem_utils.h"
77
#include "lists.h"
88

9-
s_calldata *calldata_init(size_t size, const uint8_t selector[CALLDATA_SELECTOR_SIZE]) {
9+
s_calldata *calldata_init(size_t size, const uint8_t *selector) {
1010
s_calldata *calldata;
1111

1212
if (APP_MEM_CALLOC((void **) &calldata, sizeof(*calldata)) == false) {
1313
return NULL;
1414
}
1515
calldata->expected_size = size;
16-
calldata_set_selector(calldata, selector);
16+
if (selector != NULL) {
17+
// ignore return value since it cannot fail with valid arguments
18+
calldata_set_selector(calldata, selector);
19+
}
1720
return calldata;
1821
}
1922

src/features/generic_tx_parser/calldata.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ typedef struct {
3131
size_t chunk_size;
3232
} s_calldata;
3333

34-
s_calldata *calldata_init(size_t size, const uint8_t selector[CALLDATA_SELECTOR_SIZE]);
34+
s_calldata *calldata_init(size_t size, const uint8_t *selector);
3535
bool calldata_set_selector(s_calldata *calldata, const uint8_t selector[CALLDATA_SELECTOR_SIZE]);
3636
bool calldata_append(s_calldata *calldata, const uint8_t *buffer, size_t size);
3737
void calldata_delete(s_calldata *node);

src/features/sign_message_eip712/ui_logic.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -780,7 +780,9 @@ static bool update_calldata_selector(const uint8_t *data,
780780
buf_shrink_expand(data, length, calldata_info->selector, sizeof(calldata_info->selector));
781781
calldata_info->selector_state = CALLDATA_INFO_PARAM_SET;
782782
if (calldata_info->value_state == CALLDATA_INFO_PARAM_SET) {
783-
calldata_set_selector(g_parked_calldata, calldata_info->selector);
783+
if (!calldata_set_selector(g_parked_calldata, calldata_info->selector)) {
784+
return false;
785+
}
784786
}
785787
return true;
786788
}

0 commit comments

Comments
 (0)