]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net/mlx5e: Fix NULL pointer dereference in ioctl module EEPROM query
authorGal Pressman <gal@nvidia.com>
Thu, 25 Dec 2025 13:27:15 +0000 (15:27 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sun, 4 Jan 2026 18:38:50 +0000 (10:38 -0800)
The mlx5_query_mcia() function unconditionally dereferences the status
pointer to store the MCIA register status value.
However, mlx5e_get_module_id() passes NULL since it doesn't need the
status value.

Add a NULL check before dereferencing the status pointer to prevent a
NULL pointer dereference.

Fixes: 2e4c44b12f4d ("net/mlx5: Refactor EEPROM query error handling to return status separately")
Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Link: https://patch.msgid.link/20251225132717.358820-4-mbloch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/port.c

index 85a9e534f44274e84f0a04f2f266523d581bcd75..8f36454dd196018e49285c5c436a973c09ce6dc9 100644 (file)
@@ -393,9 +393,11 @@ static int mlx5_query_mcia(struct mlx5_core_dev *dev,
        if (err)
                return err;
 
-       *status = MLX5_GET(mcia_reg, out, status);
-       if (*status)
+       if (MLX5_GET(mcia_reg, out, status)) {
+               if (status)
+                       *status = MLX5_GET(mcia_reg, out, status);
                return -EIO;
+       }
 
        ptr = MLX5_ADDR_OF(mcia_reg, out, dword_0);
        memcpy(data, ptr, size);