diff options
| author | Jerzy Kasenberg <[email protected]> | 2022-05-01 14:14:42 +0200 |
|---|---|---|
| committer | Jerzy Kasenberg <[email protected]> | 2022-05-01 14:14:42 +0200 |
| commit | c145777e0eb6b9add414504dd8cf4ec7da6cc61a (patch) | |
| tree | dda7ef186585a795a144ba5e0dc3e93bf21a5704 /src | |
| parent | d51743a21cb23f7e0c81844f12bba08420a52a29 (diff) | |
dcd_pic32: Add asserts transfer sanity check
TU_ASSERTS added to detect transfer inconsistency.
Diffstat (limited to 'src')
| -rw-r--r-- | src/portable/microchip/pic32mz/dcd_pic32mz.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/portable/microchip/pic32mz/dcd_pic32mz.c b/src/portable/microchip/pic32mz/dcd_pic32mz.c index 7d48f755b..1683d95b4 100644 --- a/src/portable/microchip/pic32mz/dcd_pic32mz.c +++ b/src/portable/microchip/pic32mz/dcd_pic32mz.c @@ -530,6 +530,7 @@ static void ep0_handle_rx(void) transferred = rx_fifo_read(0, xfer->buffer + xfer->transferred); xfer->transferred += transferred; + TU_ASSERT(xfer->transferred <= xfer->total_len,); if (transferred < xfer->max_packet_size || xfer->transferred == xfer->total_len) { ep0_set_stage(EP0_STAGE_DATA_OUT_COMPLETE); @@ -560,6 +561,7 @@ static void epn_handle_rx_int(uint8_t epnum) transferred = rx_fifo_read(epnum, xfer->buffer + xfer->transferred); USB_REGS->EPCSR[epnum].RXCSRL_HOSTbits.RXPKTRDY = 0; xfer->transferred += transferred; + TU_ASSERT(xfer->transferred <= xfer->total_len,); if (transferred < xfer->max_packet_size || xfer->transferred == xfer->total_len) { xfer_complete(xfer, XFER_RESULT_SUCCESS, true); @@ -579,6 +581,7 @@ static void epn_handle_tx_int(uint8_t epnum) else { xfer->transferred += xfer->last_packet_size; + TU_ASSERT(xfer->transferred <= xfer->total_len,); if (xfer->last_packet_size < xfer->max_packet_size || xfer->transferred == xfer->total_len) { xfer->last_packet_size = 0; |
