mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Stefan Dösinger" <stefan@codeweavers.com>,
	"Arend van Spriel" <arend.vanspriel@broadcom.com>,
	"Kalle Valo" <kvalo@kernel.org>,
	"Sasha Levin" <sashal@kernel.org>,
	bartosz.golaszewski@linaro.org, vassilisamir@gmail.com,
	saikrishnag@marvell.com, knaerzche@gmail.com,
	javier.carrasco.cruz@gmail.com, jacobe.zang@wesion.com,
	linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev,
	brcm80211-dev-list.pdl@broadcom.com
Subject: [PATCH AUTOSEL 6.12 14/29] wifi: brcmfmac: Check the return value of of_property_read_string_index()
Date: Sun, 26 Jan 2025 10:01:55 -0500	[thread overview]
Message-ID: <20250126150210.955385-14-sashal@kernel.org> (raw)
In-Reply-To: <20250126150210.955385-1-sashal@kernel.org>

From: Stefan Dösinger <stefan@codeweavers.com>

[ Upstream commit 082d9e263af8de68f0c34f67b251818205160f6e ]

Somewhen between 6.10 and 6.11 the driver started to crash on my
MacBookPro14,3. The property doesn't exist and 'tmp' remains
uninitialized, so we pass a random pointer to devm_kstrdup().

The crash I am getting looks like this:

BUG: unable to handle page fault for address: 00007f033c669379
PF: supervisor read access in kernel mode
PF: error_code(0x0001) - permissions violation
PGD 8000000101341067 P4D 8000000101341067 PUD 101340067 PMD 1013bb067 PTE 800000010aee9025
Oops: Oops: 0001 [#1] SMP PTI
CPU: 4 UID: 0 PID: 827 Comm: (udev-worker) Not tainted 6.11.8-gentoo #1
Hardware name: Apple Inc. MacBookPro14,3/Mac-551B86E5744E2388, BIOS 529.140.2.0.0 06/23/2024
RIP: 0010:strlen+0x4/0x30
Code: f7 75 ec 31 c0 c3 cc cc cc cc 48 89 f8 c3 cc cc cc cc 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa <80> 3f 00 74 14 48 89 f8 48 83 c0 01 80 38 00 75 f7 48 29 f8 c3 cc
RSP: 0018:ffffb4aac0683ad8 EFLAGS: 00010202
RAX: 00000000ffffffea RBX: 00007f033c669379 RCX: 0000000000000001
RDX: 0000000000000cc0 RSI: 00007f033c669379 RDI: 00007f033c669379
RBP: 00000000ffffffea R08: 0000000000000000 R09: 00000000c0ba916a
R10: ffffffffffffffff R11: ffffffffb61ea260 R12: ffff91f7815b50c8
R13: 0000000000000cc0 R14: ffff91fafefffe30 R15: ffffb4aac0683b30
FS:  00007f033ccbe8c0(0000) GS:ffff91faeed00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f033c669379 CR3: 0000000107b1e004 CR4: 00000000003706f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 ? __die+0x23/0x70
 ? page_fault_oops+0x149/0x4c0
 ? raw_spin_rq_lock_nested+0xe/0x20
 ? sched_balance_newidle+0x22b/0x3c0
 ? update_load_avg+0x78/0x770
 ? exc_page_fault+0x6f/0x150
 ? asm_exc_page_fault+0x26/0x30
 ? __pfx_pci_conf1_write+0x10/0x10
 ? strlen+0x4/0x30
 devm_kstrdup+0x25/0x70
 brcmf_of_probe+0x273/0x350 [brcmfmac]

Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20250106170958.3595-1-stefan@codeweavers.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
index af930e34c21f8..22c064848124d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
@@ -97,13 +97,13 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
 	/* Set board-type to the first string of the machine compatible prop */
 	root = of_find_node_by_path("/");
 	if (root && err) {
-		char *board_type;
+		char *board_type = NULL;
 		const char *tmp;
 
-		of_property_read_string_index(root, "compatible", 0, &tmp);
-
 		/* get rid of '/' in the compatible string to be able to find the FW */
-		board_type = devm_kstrdup(dev, tmp, GFP_KERNEL);
+		if (!of_property_read_string_index(root, "compatible", 0, &tmp))
+			board_type = devm_kstrdup(dev, tmp, GFP_KERNEL);
+
 		if (!board_type) {
 			of_node_put(root);
 			return;
-- 
2.39.5


  parent reply	other threads:[~2025-01-26 15:02 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-26 15:01 [PATCH AUTOSEL 6.12 01/29] wifi: rtw89: add crystal_cap check to avoid setting as overflow value Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 02/29] tun: fix group permission check Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 03/29] mmc: core: Respect quirk_max_rate for non-UHS SDIO card Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 04/29] mmc: sdhci-esdhc-imx: enable 'SDHCI_QUIRK_NO_LED' quirk for S32G Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 05/29] Revert "HID: multitouch: Add support for lenovo Y9000P Touchpad" Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 06/29] wifi: brcmsmac: add gain range check to wlc_phy_iqcal_gainparams_nphy() Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 07/29] tomoyo: don't emit warning in tomoyo_write_control() Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 08/29] mfd: lpc_ich: Add another Gemini Lake ISA bridge PCI device-id Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 09/29] wifi: rtw88: add __packed attribute to efuse layout struct Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 10/29] clk: qcom: Make GCC_8150 depend on QCOM_GDSC Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 11/29] HID: multitouch: Add quirk for Hantick 5288 touchpad Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 12/29] HID: Wacom: Add PCI Wacom device support Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 13/29] net/mlx5: use do_aux_work for PHC overflow checks Sasha Levin
2025-01-26 15:01 ` Sasha Levin [this message]
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 15/29] wifi: iwlwifi: pcie: Add support for new device ids Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 16/29] wifi: iwlwifi: avoid memory leak Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 17/29] i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz Sasha Levin
2025-01-26 15:01 ` [PATCH AUTOSEL 6.12 18/29] APEI: GHES: Have GHES honor the panic= setting Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 19/29] Bluetooth: btusb: Add new VID/PID 13d3/3610 for MT7922 Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 20/29] Bluetooth: btusb: Add new VID/PID 13d3/3628 for MT7925 Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 21/29] Bluetooth: MGMT: Fix slab-use-after-free Read in mgmt_remove_adv_monitor_sync Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 22/29] net: wwan: iosm: Fix hibernation by re-binding the driver around it Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 23/29] HID: hid-asus: Disable OOBE mode on the ProArt P16 Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 24/29] mmc: sdhci-msm: Correctly set the load for the regulator Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 25/29] octeon_ep: update tx/rx stats locally for persistence Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 26/29] octeon_ep_vf: " Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 27/29] tipc: re-order conditions in tipc_crypto_key_rcv() Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 28/29] selftests/net/ipsec: Fix Null pointer dereference in rtattr_pack() Sasha Levin
2025-01-26 15:02 ` [PATCH AUTOSEL 6.12 29/29] net: ethernet: ti: am65-cpsw: ensure proper channel cleanup in error path 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=20250126150210.955385-14-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=arend.vanspriel@broadcom.com \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=brcm80211-dev-list.pdl@broadcom.com \
    --cc=brcm80211@lists.linux.dev \
    --cc=jacobe.zang@wesion.com \
    --cc=javier.carrasco.cruz@gmail.com \
    --cc=knaerzche@gmail.com \
    --cc=kvalo@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=saikrishnag@marvell.com \
    --cc=stable@vger.kernel.org \
    --cc=stefan@codeweavers.com \
    --cc=vassilisamir@gmail.com \
    /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®