From 2c19e5772dbc885e3342dea7263dc1a5978258a0 Mon Sep 17 00:00:00 2001 From: sekigon-gonnoc <43873124+sekigon-gonnoc@users.noreply.github.com> Date: Sat, 24 Aug 2024 18:53:51 +0900 Subject: [PATCH] Fix pre-encoded data buffer overflow --- src/pio_usb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pio_usb.c b/src/pio_usb.c index 27407da..e84b6fa 100644 --- a/src/pio_usb.c +++ b/src/pio_usb.c @@ -458,12 +458,13 @@ uint8_t __no_inline_not_in_flash_func(pio_usb_ll_encode_tx_data)( encoded_data[byte_idx] |= PIO_USB_TX_ENCODED_DATA_COMP; bit_idx++; + // terminate buffers with K do { byte_idx = bit_idx >> 2; encoded_data[byte_idx] <<= 2; encoded_data[byte_idx] |= PIO_USB_TX_ENCODED_DATA_K; bit_idx++; - } while (bit_idx & 0x07); + } while (bit_idx & 0x03); byte_idx = bit_idx >> 2; return byte_idx;