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, knaerzche@gmail.com,
sebastian.reichel@collabora.com, javier.carrasco.cruz@gmail.com,
jacobe.zang@wesion.com, vassilisamir@gmail.com,
linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev,
brcm80211-dev-list.pdl@broadcom.com
Subject: [PATCH AUTOSEL 6.13 19/35] wifi: brcmfmac: Check the return value of of_property_read_string_index()
Date: Sun, 26 Jan 2025 10:00:13 -0500 [thread overview]
Message-ID: <20250126150029.953021-19-sashal@kernel.org> (raw)
In-Reply-To: <20250126150029.953021-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 c1f18e2fe540d..1681ad00f82ec 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
@@ -99,13 +99,13 @@ int 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 0;
--
2.39.5
next prev parent reply other threads:[~2025-01-26 15:01 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-26 14:59 [PATCH AUTOSEL 6.13 01/35] wifi: ath12k: Fix for out-of bound access error Sasha Levin
2025-01-26 14:59 ` [PATCH AUTOSEL 6.13 02/35] wifi: ath12k: ath12k_mac_op_set_key(): fix uninitialized symbol 'ret' Sasha Levin
2025-01-26 14:59 ` [PATCH AUTOSEL 6.13 03/35] wifi: rtw89: add crystal_cap check to avoid setting as overflow value Sasha Levin
2025-01-26 14:59 ` [PATCH AUTOSEL 6.13 04/35] tun: fix group permission check Sasha Levin
2025-01-26 14:59 ` [PATCH AUTOSEL 6.13 05/35] mmc: core: Respect quirk_max_rate for non-UHS SDIO card Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 06/35] mmc: sdhci-esdhc-imx: enable 'SDHCI_QUIRK_NO_LED' quirk for S32G Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 07/35] Revert "HID: multitouch: Add support for lenovo Y9000P Touchpad" Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 08/35] wifi: brcmsmac: add gain range check to wlc_phy_iqcal_gainparams_nphy() Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 09/35] tomoyo: don't emit warning in tomoyo_write_control() Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 10/35] mfd: lpc_ich: Add another Gemini Lake ISA bridge PCI device-id Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 11/35] wifi: rtw88: add __packed attribute to efuse layout struct Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 12/35] clk: qcom: Make GCC_8150 depend on QCOM_GDSC Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 13/35] net/mlx5: HWS, change error flow on matcher disconnect Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 14/35] net/mlx5: HWS, num_of_rules counter on matcher should be atomic Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 15/35] HID: multitouch: Add quirk for Hantick 5288 touchpad Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 16/35] HID: Wacom: Add PCI Wacom device support Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 17/35] net/mlx5: use do_aux_work for PHC overflow checks Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 18/35] Revert "mfd: axp20x: Allow multiple regulators" Sasha Levin
2025-01-26 15:00 ` Sasha Levin [this message]
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 20/35] wifi: iwlwifi: pcie: Add support for new device ids Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 21/35] wifi: iwlwifi: avoid memory leak Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 22/35] i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 23/35] APEI: GHES: Have GHES honor the panic= setting Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 24/35] Bluetooth: btusb: Add ID 0x2c7c:0x0130 for Qualcomm WCN785x Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 25/35] Bluetooth: btusb: Add new VID/PID 13d3/3610 for MT7922 Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 26/35] Bluetooth: btusb: Add new VID/PID 13d3/3628 for MT7925 Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 27/35] Bluetooth: MGMT: Fix slab-use-after-free Read in mgmt_remove_adv_monitor_sync Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 28/35] net: wwan: iosm: Fix hibernation by re-binding the driver around it Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 29/35] HID: hid-asus: Disable OOBE mode on the ProArt P16 Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 30/35] mmc: sdhci-msm: Correctly set the load for the regulator Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 31/35] octeon_ep: update tx/rx stats locally for persistence Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 32/35] octeon_ep_vf: " Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 33/35] tipc: re-order conditions in tipc_crypto_key_rcv() Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 34/35] selftests/net/ipsec: Fix Null pointer dereference in rtattr_pack() Sasha Levin
2025-01-26 15:00 ` [PATCH AUTOSEL 6.13 35/35] 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=20250126150029.953021-19-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=sebastian.reichel@collabora.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