Skip to content

Commit 0d677d5

Browse files
committed
use malloc for seader_send_apdu
1 parent 4aaef3d commit 0d677d5

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

sam_api.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,13 @@ bool seader_send_apdu(
157157
return false;
158158
}
159159

160-
uint8_t apdu[SEADER_UART_RX_BUF_SIZE];
160+
uint8_t length = APDU_HEADER_LEN + payloadLen;
161+
uint8_t *apdu = malloc(length);
162+
if(!apdu) {
163+
FURI_LOG_E(TAG, "Failed to allocate memory for apdu in seader_send_apdu");
164+
return false;
165+
}
166+
161167
apdu[0] = CLA;
162168
apdu[1] = INS;
163169
apdu[2] = P1;
@@ -172,7 +178,6 @@ bool seader_send_apdu(
172178
}
173179

174180
memcpy(apdu + APDU_HEADER_LEN, payload, payloadLen);
175-
uint8_t length = APDU_HEADER_LEN + payloadLen;
176181

177182
memset(display, 0, sizeof(display));
178183
for(uint8_t i = 0; i < length; i++) {
@@ -185,6 +190,7 @@ bool seader_send_apdu(
185190
} else {
186191
seader_ccid_XfrBlock(seader_uart, apdu, length);
187192
}
193+
free(apdu);
188194

189195
return true;
190196
}

0 commit comments

Comments
 (0)