]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: prestera: validate firmware header length
authorPengpeng Hou <pengpeng@iscas.ac.cn>
Fri, 31 Jul 2026 14:19:06 +0000 (22:19 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 6 Aug 2026 00:36:24 +0000 (17:36 -0700)
prestera_fw_hdr_parse() reads the firmware header before checking
that the firmware image contains that header.

Reject images shorter than struct prestera_fw_header before decoding the
magic and version fields.

Fixes: 4c2703dfd7fabb ("net: marvell: prestera: Add PCI interface support")
Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Acked-by: Elad Nachman <enachman@marvell.com>
Link: https://patch.msgid.link/20260731141500.1-prestera-v2-pengpeng@iscas.ac.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/prestera/prestera_pci.c

index 2989a77e3b422a1b6f32247f21584a3d08fe8b1a..1ad0e62a8433ba91a9c019aa7f277c6c9f65f58e 100644 (file)
@@ -684,6 +684,9 @@ static int prestera_fw_hdr_parse(struct prestera_fw *fw)
        struct prestera_fw_header *hdr;
        u32 magic;
 
+       if (fw->bin->size < sizeof(*hdr))
+               return -EINVAL;
+
        hdr = (struct prestera_fw_header *)fw->bin->data;
 
        magic = be32_to_cpu(hdr->magic_number);