RDMA/cma: Fix the size of a buffer in add_port_entries()

Message ID 91395b73a64c13dfe45c3fd3b088b216ba0c9332.1695449697.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series RDMA/cma: Fix the size of a buffer in add_port_entries() |

Commit Message

Christophe JAILLET Sept. 23, 2023, 6:15 a.m. UTC
  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 <christophe.jaillet@wanadoo.fr>
---
 drivers/infiniband/core/cma_configfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Leon Romanovsky Sept. 23, 2023, 6:52 p.m. UTC | #1
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 <christophe.jaillet@wanadoo.fr>
> ---
>  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/
  

Patch

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);