diff mbox series

dmaengine: cirrus: check that output may be truncated

Message ID 2bf9c37aad8f085839f9c63104f7275742f51945.camel@gmail.com (mailing list archive)
State Accepted
Commit 26d77ce57479f4aa960f0e446e3f27be725b2d70
Headers show
Series dmaengine: cirrus: check that output may be truncated | expand

Commit Message

Alexander Sverdlin Sept. 20, 2024, 11:21 p.m. UTC
ep93xx_dma.c: In function 'ep93xx_dma_of_probe':
ep93xx_dma.c:1409:74: warning: '%u' directive output may be truncated
			       writing between 1 and 8 bytes into a region
			       of size 2 [-Wformat-truncation=]
		snprintf(dma_clk_name, sizeof(dma_clk_name), "m2p%u", i);
		                                                 ^~

Fixes: d7333f9d3377 ("dmaengine: cirrus: use snprintf() to calm down gcc 13.3.0")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202409172024.pU8U5beA-lkp@intel.com/
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
---
 drivers/dma/ep93xx_dma.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

patchwork-bot+linux-soc@kernel.org Oct. 11, 2024, 10:59 a.m. UTC | #1
Hello:

This patch was applied to soc/soc.git (arm/fixes)
by Arnd Bergmann <arnd@arndb.de>:

On Sat, 21 Sep 2024 01:21:55 +0200 you wrote:
> ep93xx_dma.c: In function 'ep93xx_dma_of_probe':
> ep93xx_dma.c:1409:74: warning: '%u' directive output may be truncated
> 			       writing between 1 and 8 bytes into a region
> 			       of size 2 [-Wformat-truncation=]
> 		snprintf(dma_clk_name, sizeof(dma_clk_name), "m2p%u", i);
> 		                                                 ^~
> 
> [...]

Here is the summary with links:
  - dmaengine: cirrus: check that output may be truncated
    https://git.kernel.org/soc/soc/c/26d77ce57479

You are awesome, thank you!
diff mbox series

Patch

diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c
index 7989bc3db209..6b98a23e3332 100644
--- a/drivers/dma/ep93xx_dma.c
+++ b/drivers/dma/ep93xx_dma.c
@@ -1391,6 +1391,7 @@  static struct ep93xx_dma_engine *ep93xx_dma_of_probe(struct platform_device *pde
 	INIT_LIST_HEAD(&dma_dev->channels);
 	for (i = 0; i < edma->num_channels; i++) {
 		struct ep93xx_dma_chan *edmac = &edma->channels[i];
+		int len;
 
 		edmac->chan.device = dma_dev;
 		edmac->regs = devm_platform_ioremap_resource(pdev, i);
@@ -1404,9 +1405,11 @@  static struct ep93xx_dma_engine *ep93xx_dma_of_probe(struct platform_device *pde
 		edmac->edma = edma;
 
 		if (edma->m2m)
-			snprintf(dma_clk_name, sizeof(dma_clk_name), "m2m%u", i);
+			len = snprintf(dma_clk_name, sizeof(dma_clk_name), "m2m%u", i);
 		else
-			snprintf(dma_clk_name, sizeof(dma_clk_name), "m2p%u", i);
+			len = snprintf(dma_clk_name, sizeof(dma_clk_name), "m2p%u", i);
+		if (len >= sizeof(dma_clk_name))
+			return ERR_PTR(-ENOBUFS);
 
 		edmac->clk = devm_clk_get(dev, dma_clk_name);
 		if (IS_ERR(edmac->clk)) {