net/mlx4: make buffer larger to avoid overflow warning
Subsystems (3)
PATCH 2/2 net/mlx4: make buffer larger to avoid overflow warning
My static checker complains that the sprintf() here can overflow.
drivers/infiniband/hw/mlx4/main.c:1836 mlx4_ib_alloc_eqs() error: format string overflow. buf_size: 32 length: 69
This seems like a valid complaint. The "dev->pdev->bus->name" string can be 48 characters long. I just made the buffer 80 characters instead of 69 and I changed the sprintf() to snprintf().
Signed-off-by Dan Carpenter <[email protected]>
drivers/infiniband/hw/mlx4/main.c +3 -3
@@ -1803,7 +1803,7 @@ static void init_pkeys(struct mlx4_ib_dev *ibdev)static void mlx4_ib_alloc_eqs (struct mlx4_dev *dev,struct mlx4_ib_dev *ibdev) { -char name[32 ]; +char name[80 ];int eq_per_port =0 ;int added_eqs =0 ;int total_eqs =0 ;
@@ -1833,8 +1833,8 @@ static void mlx4_ib_alloc_eqs(struct mlx4_dev *dev, struct mlx4_ib_dev *ibdev) eq =0 ; mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) {for (j =0 ; j < eq_per_port; j++) { -sprintf (name,"mlx4-ib-%d-%d@%s" , - i, j, dev->pdev->bus->name); +snprintf (name,sizeof (name),"mlx4-ib-%d-%d@%s" , + i, j, dev->pdev->bus->name);/* Set IRQ for specific name (per ring) */ if (mlx4_assign_eq (dev, name,NULL , &ibdev->eq_table[eq])) {