Skip to content

Commit eac86f0

Browse files
Use io buffer
1 parent a9d3e1b commit eac86f0

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

lib_stusb/src/usbd_ledger_cdc.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,8 @@ USBD_StatusTypeDef USBD_LEDGER_CDC_data_out(USBD_HandleTypeDef *pdev,
426426

427427
// Filter anything not starting with AT+ :
428428
if (packet_length > 3) {
429-
memset(G_io_apdu_buffer, 0, sizeof(G_io_apdu_buffer));
430-
memcpy(G_io_apdu_buffer, packet, packet_length);
429+
memset(USBD_LEDGER_io_buffer, 0, packet_length);
430+
memcpy(USBD_LEDGER_io_buffer, packet, packet_length);
431431
G_io_app.apdu_length = packet_length;
432432
G_io_app.apdu_media = IO_APDU_MEDIA_CDC;
433433
}
@@ -489,8 +489,10 @@ int32_t USBD_LEDGER_CDC_data_ready(USBD_HandleTypeDef *pdev,
489489
// First update packet type in buff :
490490
buffer[0] = OS_IO_PACKET_TYPE_AT_APDU;
491491
// Then copy data to G_io_rx_buffer.
492-
memmove(buffer + 1, G_io_apdu_buffer, G_io_app.apdu_length);
493-
status = G_io_app.apdu_length + 1;
492+
if (G_io_app.apdu_length < (max_length - 1)) {
493+
memmove(buffer + 1, USBD_LEDGER_io_buffer, G_io_app.apdu_length);
494+
status = G_io_app.apdu_length + 1;
495+
}
494496
}
495497

496498
return status;

0 commit comments

Comments
 (0)