usb: dwc2: avoid out of bounds access
PATCH v2 1/1 usb: dwc2: avoid out of bounds access
flush_dcache_range may access data after priv->aligned_buffer end if len > DWC2_DATA_BUF_SIZE.
memcpy may access data after buffer end if done > 0
Signed-off-by Stefan Br?ns <[email protected]>
Acked-by Marek Vasut <[email protected]>
Acked-by Stephen Warren <[email protected]>
---
v2: Added Acked-by: ...
drivers/usb/host/dwc2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/usb/host/dwc2.c +4 -3
@@ -823,12 +823,13 @@ int chunk_msg(struct dwc2_priv *priv, struct usb_device *dev, (*pid <<DWC2_HCTSIZ_PID_OFFSET ), &hc_regs->hctsiz); -if (!in) { -memcpy (priv->aligned_buffer, (char *)buffer + done, len); +if (!in && xfer_len) { +memcpy (priv->aligned_buffer, (char *)buffer + done, + xfer_len);flush_dcache_range ((unsigned long )priv->aligned_buffer, (unsigned long )((void *)priv->aligned_buffer + -roundup (len,ARCH_DMA_MINALIGN ))); +roundup (xfer_len,ARCH_DMA_MINALIGN ))); } writel(phys_to_bus((unsigned long)priv->aligned_buffer),
Signature · 1 line
2.1.4
Marek Vasut
AppliedPATCH v2 1/1 usb: dwc2: avoid out of bounds access
Quoted 7 lines · Stefan Br?ns
flush_dcache_rangemay access data afterpriv->aligned_bufferend if len >DWC2_DATA_BUF_SIZE.
memcpy may access data after buffer end if done > 0Signed-off-by Stefan Br?ns <[email protected]>Acked-by Marek Vasut <[email protected]>Acked-by Stephen Warren <[email protected]>
Applied, thanks.
Best regards,
Marek Vasut