dmaengine: ppc4xx: Use scnprintf() for avoiding potential buffer overflow
authorTakashi Iwai <tiwai@suse.de>
Wed, 11 Mar 2020 07:16:06 +0000 (08:16 +0100)
committerVinod Koul <vkoul@kernel.org>
Wed, 11 Mar 2020 09:40:45 +0000 (15:10 +0530)
Since snprintf() returns the would-be-output size instead of the
actual output size, the succeeding calls may go beyond the given
buffer limit.  Fix it by replacing with scnprintf().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200311071606.4485-1-tiwai@suse.de
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/ppc4xx/adma.c

index fbabd2e..4db000d 100644 (file)
@@ -4303,7 +4303,7 @@ static ssize_t devices_show(struct device_driver *dev, char *buf)
        for (i = 0; i < PPC440SPE_ADMA_ENGINES_NUM; i++) {
                if (ppc440spe_adma_devices[i] == -1)
                        continue;
-               size += snprintf(buf + size, PAGE_SIZE - size,
+               size += scnprintf(buf + size, PAGE_SIZE - size,
                                 "PPC440SP(E)-ADMA.%d: %s\n", i,
                                 ppc_adma_errors[ppc440spe_adma_devices[i]]);
        }