]> www.infradead.org Git - nvme.git/commitdiff
net/mlx5e: Correct snprintf truncation handling for fw_version buffer used by represe...
authorRahul Rameshbabu <rrameshbabu@nvidia.com>
Tue, 21 Nov 2023 23:00:22 +0000 (15:00 -0800)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 14 Dec 2023 01:22:20 +0000 (17:22 -0800)
snprintf returns the length of the formatted string, excluding the trailing
null, without accounting for truncation. This means that is the return
value is greater than or equal to the size parameter, the fw_version string
was truncated.

Link: https://docs.kernel.org/core-api/kernel-api.html#c.snprintf
Fixes: 1b2bd0c0264f ("net/mlx5e: Check return value of snprintf writing to fw_version buffer for representors")
Signed-off-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c

index 1bf7540a65ad95e61dbf9e918f475599500d1252..e92d4f83592ed94fefd028731a2ab71617f4c1a1 100644 (file)
@@ -78,7 +78,7 @@ static void mlx5e_rep_get_drvinfo(struct net_device *dev,
        count = snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version),
                         "%d.%d.%04d (%.16s)", fw_rev_maj(mdev),
                         fw_rev_min(mdev), fw_rev_sub(mdev), mdev->board_id);
-       if (count == sizeof(drvinfo->fw_version))
+       if (count >= sizeof(drvinfo->fw_version))
                snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version),
                         "%d.%d.%04d", fw_rev_maj(mdev),
                         fw_rev_min(mdev), fw_rev_sub(mdev));