linux/net/wireless
Miri Korenblit a5158d67bf wifi: cfg80211: cancel wiphy_work before freeing wiphy
[ Upstream commit 72d520476a ]

A wiphy_work can be queued from the moment the wiphy is allocated and
initialized (i.e. wiphy_new_nm). When a wiphy_work is queued, the
rdev::wiphy_work is getting queued.

If wiphy_free is called before the rdev::wiphy_work had a chance to run,
the wiphy memory will be freed, and then when it eventally gets to run
it'll use invalid memory.

Fix this by canceling the work before freeing the wiphy.

Fixes: a3ee4dc84c ("wifi: cfg80211: add a work abstraction with special semantics")
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://patch.msgid.link/20250306123626.efd1d19f6e07.I48229f96f4067ef73f5b87302335e2fd750136c9@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-03-22 12:54:10 -07:00
..
certs wifi: cfg80211: fix certs build to not depend on file order 2023-12-14 09:11:51 +01:00
tests wifi: cfg80211: tests: Fix potential NULL dereference in test_cfg80211_parse_colocated_ap() 2025-02-08 09:57:02 +01:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
ap.c wifi: cfg80211: remove wdev mutex 2023-09-11 11:27:23 +02:00
chan.c wifi: cfg80211: reject non-conformant 6 GHz center frequencies 2024-06-12 13:04:25 +02:00
core.c wifi: cfg80211: cancel wiphy_work before freeing wiphy 2025-03-22 12:54:10 -07:00
core.h wifi: cfg80211: skip indicating signal for per-STA profile BSSs 2024-09-06 12:56:33 +02:00
debugfs.c wifi: cfg80211: add locked debugfs wrappers 2023-11-27 11:24:58 +01:00
debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ethtool.c wifi: cfg80211: use strscpy to replace strlcpy 2022-07-15 11:43:12 +02:00
ibss.c wifi: cfg80211: move DFS related members to links[] in wireless_dev 2024-09-06 13:01:05 +02:00
Kconfig wifi: cfg80211/mac80211: remove dependency on non-existing option 2024-01-18 14:50:01 +01:00
lib80211.c wifi: lib80211: Constify struct lib80211_crypto_ops 2024-08-27 10:28:51 +02:00
lib80211_crypt_ccmp.c wifi: lib80211: Constify struct lib80211_crypto_ops 2024-08-27 10:28:51 +02:00
lib80211_crypt_tkip.c wifi: lib80211: Constify struct lib80211_crypto_ops 2024-08-27 10:28:51 +02:00
lib80211_crypt_wep.c wifi: lib80211: Constify struct lib80211_crypto_ops 2024-08-27 10:28:51 +02:00
Makefile kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
mesh.c wifi: cfg80211: move DFS related members to links[] in wireless_dev 2024-09-06 13:01:05 +02:00
mlme.c wifi: cfg80211: Remove the Medium Synchronization Delay validity check 2024-12-05 14:01:55 +01:00
nl80211.c wifi: nl80211: reject cooked mode if it is set along with other flags 2025-03-13 13:01:57 +01:00
nl80211.h wifi: nl80211: clean up coalescing rule handling 2024-05-29 10:38:53 +02:00
ocb.c wifi: cfg80211: remove wdev mutex 2023-09-11 11:27:23 +02:00
of.c cfg80211: support ieee80211-freq-limit DT property 2017-01-06 14:01:13 +01:00
pmsr.c wifi: nl80211: remove the FTMs per burst limit for NDP ranging 2024-06-12 13:04:25 +02:00
radiotap.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
rdev-ops.h wifi: cfg80211: handle DFS per link 2024-09-06 13:01:05 +02:00
reg.c wifi: cfg80211: regulatory: improve invalid hints checking 2025-03-13 13:01:57 +01:00
reg.h wifi: cfg80211: add return docs for regulatory functions 2024-04-19 10:29:08 +02:00
scan.c wifi: cfg80211: adjust allocation of colocated AP data 2025-02-08 09:57:22 +01:00
sme.c wifi: cfg80211: sme: init n_channels before channels[] access 2024-12-19 18:13:12 +01:00
sysfs.c wifi: cfg80211: fully move wiphy work to unbound workqueue 2024-05-29 15:23:33 +02:00
sysfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.c cfg80211: add tracing to rdev-ops 2012-10-18 10:53:37 +02:00
trace.h wifi: cfg80211: handle DFS per link 2024-09-06 13:01:05 +02:00
util.c wifi: cfg80211: clear link ID from bitmap during link delete after clean up 2025-01-09 13:33:43 +01:00
wext-compat.c wifi: cfg80211: wext: convert return value to kernel-doc 2023-10-23 11:45:17 +02:00
wext-compat.h wifi: cfg80211: Avoid clashing function prototypes 2022-11-16 11:31:47 +02:00
wext-core.c wifi: cfg80211: add a flag to disable wireless extensions 2024-03-25 15:23:06 +01:00
wext-priv.c wext: fix potential private ioctl memory content leak 2010-09-20 13:41:40 -04:00
wext-proc.c proc: introduce proc_create_net{,_data} 2018-05-16 07:24:30 +02:00
wext-sme.c wifi: cfg80211: remove wdev mutex 2023-09-11 11:27:23 +02:00
wext-spy.c wireless: wext-spy: Fix out-of-bounds warning 2021-06-23 10:57:17 +02:00