2023-09-23 10:04:47

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] RDMA/cma: Fix the size of a buffer in add_port_entries()

In order to be sure that 'buff' is never truncated, its size should be
11, not 10.

When building with W=1, this fixes the following warnings:

drivers/infiniband/core/cma_configfs.c: In function ‘make_cma_ports’:
drivers/infiniband/core/cma_configfs.c:223:57: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=]
223 | snprintf(port_str, sizeof(port_str), "%u", i + 1);
| ^
drivers/infiniband/core/cma_configfs.c:223:17: note: ‘snprintf’ output between 2 and 11 bytes into a destination of size 10
223 | snprintf(port_str, sizeof(port_str), "%u", i + 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixes: 045959db65c67 ("IB/cma: Add configfs for rdma_cm")
Signed-off-by: Christophe JAILLET <[email protected]>
---
drivers/infiniband/core/cma_configfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/core/cma_configfs.c b/drivers/infiniband/core/cma_configfs.c
index 7b68b3ea979f..f2fb2d8a6597 100644
--- a/drivers/infiniband/core/cma_configfs.c
+++ b/drivers/infiniband/core/cma_configfs.c
@@ -217,7 +217,7 @@ static int make_cma_ports(struct cma_dev_group *cma_dev_group,
return -ENOMEM;

for (i = 0; i < ports_num; i++) {
- char port_str[10];
+ char port_str[11];

ports[i].port_num = i + 1;
snprintf(port_str, sizeof(port_str), "%u", i + 1);
--
2.34.1


2023-09-23 18:52:43

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] RDMA/cma: Fix the size of a buffer in add_port_entries()

On Sat, Sep 23, 2023 at 08:15:25AM +0200, Christophe JAILLET wrote:
> In order to be sure that 'buff' is never truncated, its size should be
> 11, not 10.
>
> When building with W=1, this fixes the following warnings:
>
> drivers/infiniband/core/cma_configfs.c: In function ‘make_cma_ports’:
> drivers/infiniband/core/cma_configfs.c:223:57: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=]
> 223 | snprintf(port_str, sizeof(port_str), "%u", i + 1);
> | ^
> drivers/infiniband/core/cma_configfs.c:223:17: note: ‘snprintf’ output between 2 and 11 bytes into a destination of size 10
> 223 | snprintf(port_str, sizeof(port_str), "%u", i + 1);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Fixes: 045959db65c67 ("IB/cma: Add configfs for rdma_cm")
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> drivers/infiniband/core/cma_configfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Thanks, it was already fixed.
https://lore.kernel.org/all/a7e3b347ee134167fa6a3787c56ef231a04bc8c2.1694434639.git.leonro@nvidia.com/