mirror of
https://github.com/tillitis/tillitis-key1.git
synced 2025-09-20 21:04:36 -04:00
ch552: Fix FIDO data copy
Fix potential out of bounds write.
This commit is contained in:
parent
ec9ef31140
commit
14e4cd09c9
1 changed files with 5 additions and 4 deletions
|
@ -1687,18 +1687,19 @@ void main()
|
|||
// Copy FIDO data from UartRxBuf to FrameBuf
|
||||
if (FrameStarted && !FrameDiscard && !FidoDataAvailable) {
|
||||
if (FrameMode == IO_FIDO) {
|
||||
// Check if a complete frame has been received
|
||||
if (UartRxBufByteCount >= FrameRemainingBytes) {
|
||||
if ((FrameRemainingBytes >= MAX_FRAME_SIZE) &&
|
||||
(UartRxBufByteCount >= MAX_FRAME_SIZE)) {
|
||||
circular_copy(FrameBuf,
|
||||
UartRxBuf,
|
||||
UART_RX_BUF_SIZE,
|
||||
UartRxBufOutputPointer,
|
||||
FrameRemainingBytes);
|
||||
MAX_FRAME_SIZE);
|
||||
FrameBufLength = MAX_FRAME_SIZE;
|
||||
// Update output pointer
|
||||
UartRxBufOutputPointer = increment_pointer(UartRxBufOutputPointer,
|
||||
FrameRemainingBytes,
|
||||
MAX_FRAME_SIZE,
|
||||
UART_RX_BUF_SIZE);
|
||||
FrameRemainingBytes -= MAX_FRAME_SIZE;
|
||||
FidoDataAvailable = 1;
|
||||
cts_start();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue