]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list
authorAndrey Vatoropin <a.vatoropin@crpt.ru>
Tue, 20 Jan 2026 11:37:47 +0000 (11:37 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Jan 2026 09:27:37 +0000 (10:27 +0100)
[ Upstream commit 8215794403d264739cc676668087512950b2ff31 ]

When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is
set to false, the driver may request the PMAC_ID from the firmware of the
network card, and this function will store that PMAC_ID at the provided
address pmac_id. This is the contract of this function.

However, there is a location within the driver where both
pmac_id_valid == false and pmac_id == NULL are being passed. This could
result in dereferencing a NULL pointer.

To resolve this issue, it is necessary to pass the address of a stub
variable to the function.

Fixes: 95046b927a54 ("be2net: refactor MAC-addr setup code")
Signed-off-by: Andrey Vatoropin <a.vatoropin@crpt.ru>
Link: https://patch.msgid.link/20260120113734.20193-1-a.vatoropin@crpt.ru
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/emulex/benet/be_cmds.c

index 779f1324bb5f82aa3a57ae8118d8600b9e905450..0cda78b78fb87220494225a2f4634a25326b7a17 100644 (file)
@@ -3797,6 +3797,7 @@ int be_cmd_get_perm_mac(struct be_adapter *adapter, u8 *mac)
 {
        int status;
        bool pmac_valid = false;
+       u32 pmac_id;
 
        eth_zero_addr(mac);
 
@@ -3809,7 +3810,7 @@ int be_cmd_get_perm_mac(struct be_adapter *adapter, u8 *mac)
                                                       adapter->if_handle, 0);
        } else {
                status = be_cmd_get_mac_from_list(adapter, mac, &pmac_valid,
-                                                 NULL, adapter->if_handle, 0);
+                                                 &pmac_id, adapter->if_handle, 0);
        }
 
        return status;