Skip to content

Commit f6b666e

Browse files
Fixed potential memory leak in GCS nested calldata
1 parent e13a7b5 commit f6b666e

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

src/features/generic_tx_parser/gtp_param_calldata.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "utils.h"
88
#include "read.h"
99
#include "tx_ctx.h"
10+
#include "mem.h"
1011

1112
enum {
1213
TAG_VERSION = 0x00,
@@ -146,8 +147,11 @@ static bool process_nested_calldata(const s_param_calldata *param,
146147
calldata_length = calldata->length - CALLDATA_SELECTOR_SIZE;
147148
}
148149

149-
if (((new_calldata = calldata_init(calldata_length, selector_buf)) == NULL) ||
150-
!calldata_append(new_calldata, calldata_buf, calldata_length)) {
150+
if ((new_calldata = calldata_init(calldata_length, selector_buf)) == NULL) {
151+
return false;
152+
}
153+
if (!calldata_append(new_calldata, calldata_buf, calldata_length)) {
154+
app_mem_free(new_calldata);
151155
return false;
152156
}
153157
}

0 commit comments

Comments
 (0)