From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Aleksandr Mishin <amishin@t-argos.ru>,
Sean Anderson <sean.anderson@seco.com>,
Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>,
madalin.bucur@nxp.com, andrew+netdev@lunn.ch,
davem@davemloft.net, edumazet@google.com, pabeni@redhat.com,
netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 6.6 42/61] fsl/fman: Validate cell-index value obtained from Device Tree
Date: Sun, 24 Nov 2024 08:45:17 -0500 [thread overview]
Message-ID: <20241124134637.3346391-42-sashal@kernel.org> (raw)
In-Reply-To: <20241124134637.3346391-1-sashal@kernel.org>
From: Aleksandr Mishin <amishin@t-argos.ru>
[ Upstream commit bd50c4125c98bd1a86f8e514872159700a9c678c ]
Cell-index value is obtained from Device Tree and then used to calculate
the index for accessing arrays port_mfl[], mac_mfl[] and intr_mng[].
In case of broken DT due to any error cell-index can contain any value
and it is possible to go beyond the array boundaries which can lead
at least to memory corruption.
Validate cell-index value obtained from Device Tree.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Reviewed-by: Sean Anderson <sean.anderson@seco.com>
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
Link: https://patch.msgid.link/20241028065824.15452-1-amishin@t-argos.ru
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/freescale/fman/fman.c | 1 -
drivers/net/ethernet/freescale/fman/fman.h | 3 +++
drivers/net/ethernet/freescale/fman/mac.c | 5 +++++
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/fman/fman.c b/drivers/net/ethernet/freescale/fman/fman.c
index d96028f01770c..fb416d60dcd72 100644
--- a/drivers/net/ethernet/freescale/fman/fman.c
+++ b/drivers/net/ethernet/freescale/fman/fman.c
@@ -24,7 +24,6 @@
/* General defines */
#define FMAN_LIODN_TBL 64 /* size of LIODN table */
-#define MAX_NUM_OF_MACS 10
#define FM_NUM_OF_FMAN_CTRL_EVENT_REGS 4
#define BASE_RX_PORTID 0x08
#define BASE_TX_PORTID 0x28
diff --git a/drivers/net/ethernet/freescale/fman/fman.h b/drivers/net/ethernet/freescale/fman/fman.h
index 2ea575a46675b..74eb62eba0d7f 100644
--- a/drivers/net/ethernet/freescale/fman/fman.h
+++ b/drivers/net/ethernet/freescale/fman/fman.h
@@ -74,6 +74,9 @@
#define BM_MAX_NUM_OF_POOLS 64 /* Buffers pools */
#define FMAN_PORT_MAX_EXT_POOLS_NUM 8 /* External BM pools per Rx port */
+/* General defines */
+#define MAX_NUM_OF_MACS 10
+
struct fman; /* FMan data */
/* Enum for defining port types */
diff --git a/drivers/net/ethernet/freescale/fman/mac.c b/drivers/net/ethernet/freescale/fman/mac.c
index 11da139082e1b..1916a2ac48b9f 100644
--- a/drivers/net/ethernet/freescale/fman/mac.c
+++ b/drivers/net/ethernet/freescale/fman/mac.c
@@ -259,6 +259,11 @@ static int mac_probe(struct platform_device *_of_dev)
err = -EINVAL;
goto _return_dev_put;
}
+ if (val >= MAX_NUM_OF_MACS) {
+ dev_err(dev, "cell-index value is too big for %pOF\n", mac_node);
+ err = -EINVAL;
+ goto _return_dev_put;
+ }
priv->cell_index = (u8)val;
/* Get the MAC address */
--
2.43.0
next prev parent reply other threads:[~2024-11-24 13:48 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-24 13:44 [PATCH AUTOSEL 6.6 01/61] drm/vc4: hdmi: Avoid log spam for audio start failure Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 02/61] drm/vc4: hvs: Set AXI panic modes for the HVS Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 03/61] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 04/61] drm: panel-orientation-quirks: Add quirk for AYA NEO Founder edition Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 05/61] drm: panel-orientation-quirks: Add quirk for AYA NEO GEEK Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 06/61] drm/bridge: it6505: Enable module autoloading Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 07/61] drm/mcde: " Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 08/61] wifi: rtw89: check return value of ieee80211_probereq_get() for RNR Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 09/61] drm/radeon/r600_cs: Fix possible int overflow in r600_packet3_check() Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 10/61] dlm: fix possible lkb_resource null dereference Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 11/61] drm/display: Fix building with GCC 15 Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 12/61] ALSA: hda: Use own quirk lookup helper Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 13/61] ALSA: hda/conexant: Use the new codec SSID matching Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 14/61] r8169: don't apply UDP padding quirk on RTL8126A Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 15/61] samples/bpf: Fix a resource leak Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 16/61] net: fec_mpc52xx_phy: Use %pa to format resource_size_t Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 17/61] net: ethernet: fs_enet: " Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 18/61] net/sched: cbs: Fix integer overflow in cbs_set_port_rate() Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 19/61] af_packet: avoid erroring out after sock_init_data() in packet_create() Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 20/61] Bluetooth: L2CAP: do not leave dangling sk pointer on error in l2cap_sock_create() Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 21/61] Bluetooth: RFCOMM: avoid leaving dangling sk pointer in rfcomm_sock_alloc() Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 22/61] net: af_can: do not leave a dangling sk pointer in can_create() Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 23/61] net: ieee802154: do not leave a dangling sk pointer in ieee802154_create() Sasha Levin
2024-11-24 13:44 ` [PATCH AUTOSEL 6.6 24/61] net: inet: do not leave a dangling sk pointer in inet_create() Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 25/61] net: inet6: do not leave a dangling sk pointer in inet6_create() Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 26/61] wifi: ath5k: add PCI ID for SX76X Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 27/61] wifi: ath5k: add PCI ID for Arcadyan devices Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 28/61] fanotify: allow reporting errors on failure to open fd Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 29/61] drm/panel: simple: Add Microchip AC69T88A LVDS Display panel Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 30/61] net: sfp: change quirks for Alcatel Lucent G-010S-P Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 31/61] net: stmmac: Programming sequence for VLAN packets with split header Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 32/61] drm/sched: memset() 'job' in drm_sched_job_init() Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 33/61] drm/amdgpu: clear RB_OVERFLOW bit when enabling interrupts for vega20_ih Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 34/61] drm/amdgpu: Dereference the ATCS ACPI buffer Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 35/61] netlink: specs: Add missing bitset attrs to ethtool spec Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 36/61] drm/amdgpu: refine error handling in amdgpu_ttm_tt_pin_userptr Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 37/61] dma-debug: fix a possible deadlock on radix_lock Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 38/61] jfs: array-index-out-of-bounds fix in dtReadFirst Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 39/61] jfs: fix shift-out-of-bounds in dbSplit Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 40/61] jfs: fix array-index-out-of-bounds in jfs_readdir Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 41/61] jfs: add a check to prevent array-index-out-of-bounds in dbAdjTree Sasha Levin
2024-11-24 13:45 ` Sasha Levin [this message]
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 43/61] net: enetc: remove ERR050089 workaround for i.MX95 Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 44/61] net: enetc: add i.MX95 EMDIO support Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 45/61] drm/amdgpu: skip amdgpu_device_cache_pci_state under sriov Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 46/61] virtio-net: fix overflow inside virtnet_rq_alloc Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 47/61] ALSA: usb-audio: Make mic volume workarounds globally applicable Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 48/61] drm/amdgpu: set the right AMDGPU sg segment limitation Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 49/61] wifi: ipw2x00: libipw_rx_any(): fix bad alignment Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 50/61] wifi: brcmfmac: Fix oops due to NULL pointer dereference in brcmf_sdiod_sglist_rw() Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 51/61] bpf: Call free_htab_elem() after htab_unlock_bucket() Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 52/61] dsa: qca8k: Use nested lock to avoid splat Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 53/61] Bluetooth: btusb: Add RTL8852BE device 0489:e123 to device tables Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 54/61] Bluetooth: hci_core: Fix not checking skb length on hci_acldata_packet Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 55/61] Bluetooth: Add new quirks for ATS2851 Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 56/61] Bluetooth: Support " Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 57/61] Bluetooth: Set " Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 58/61] ASoC: hdmi-codec: reorder channel allocation list Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 59/61] rocker: fix link status detection in rocker_carrier_init() Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 60/61] net/neighbor: clear error in case strict check is not set Sasha Levin
2024-11-24 13:45 ` [PATCH AUTOSEL 6.6 61/61] netpoll: Use rcu_access_pointer() in __netpoll_setup Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241124134637.3346391-42-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=amishin@t-argos.ru \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=madalin.bucur@nxp.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sean.anderson@seco.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®