]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 5 Jan 2024 14:13:29 +0000 (15:13 +0100)
[ Upstream commit b13559b76157de9d74f04d3ca0e49d69de3b5675 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c

index 7a00faa62d993dfd325c793f8cc7a14793e0910d..de168d8cf33f7837f72244231b6952e61b416a12 100644 (file)
@@ -73,7 +73,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));