• Lad Prabhakar's avatar
    dmaengine: usb-dmac: Avoid format-overflow warning · 62b68a88
    Lad Prabhakar authored
    gcc points out that the fix-byte buffer might be too small:
    drivers/dma/sh/usb-dmac.c: In function 'usb_dmac_probe':
    drivers/dma/sh/usb-dmac.c:720:34: warning: '%u' directive writing between 1 and 10 bytes into a region of size 3 [-Wformat-overflow=]
      720 |         sprintf(pdev_irqname, "ch%u", index);
          |                                  ^~
    In function 'usb_dmac_chan_probe',
        inlined from 'usb_dmac_probe' at drivers/dma/sh/usb-dmac.c:814:9:
    drivers/dma/sh/usb-dmac.c:720:31: note: directive argument in the range [0, 4294967294]
      720 |         sprintf(pdev_irqname, "ch%u", index);
          |                               ^~~~~~
    drivers/dma/sh/usb-dmac.c:720:9: note: 'sprintf' output between 4 and 13 bytes into a destination of size 5
      720 |         sprintf(pdev_irqname, "ch%u", index);
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Maximum number of channels for USB-DMAC as per the driver is 1-99 so use
    u8 instead of unsigned int/int for DMAC channel indexing and make the
    pdev_irqname string long enough to avoid the warning.
    
    While at it use scnprintf() instead of sprintf() to make the code more
    robust.
    Signed-off-by: default avatarLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20240110222210.193479-1-prabhakar.mahadev-lad.rj@bp.renesas.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
    62b68a88
usb-dmac.c 22.9 KB