linux/net/wireless
Aleksei Vetrov 1a7b62ddf2 wifi: nl80211: fix bounds checker error in nl80211_parse_sched_scan
commit 9c46a3a5b3 upstream.

The channels array in the cfg80211_scan_request has a __counted_by
attribute attached to it, which points to the n_channels variable. This
attribute is used in bounds checking, and if it is not set before the
array is filled, then the bounds sanitizer will issue a warning or a
kernel panic if CONFIG_UBSAN_TRAP is set.

This patch sets the size of allocated memory as the initial value for
n_channels. It is updated with the actual number of added elements after
the array is filled.

Fixes: aa4ec06c45 ("wifi: cfg80211: use __counted_by where appropriate")
Cc: stable@vger.kernel.org
Signed-off-by: Aleksei Vetrov <vvvvvv@google.com>
Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Link: https://patch.msgid.link/20241029-nl80211_parse_sched_scan-bounds-checker-fix-v2-1-c804b787341f@google.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-12-05 14:02:49 +01:00
..
certs wifi: cfg80211: fix certs build to not depend on file order 2023-12-14 09:11:51 +01:00
tests wifi: cfg80211: reject non-conformant 6 GHz center frequencies 2024-06-12 13:04:25 +02: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: check radio iface combination for multi radio per wiphy 2024-12-05 14:01:43 +01: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: fix bounds checker error in nl80211_parse_sched_scan 2024-12-05 14:02:49 +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: handle DFS per link 2024-09-06 13:01:05 +02:00
reg.h wifi: cfg80211: add return docs for regulatory functions 2024-04-19 10:29:08 +02:00
scan.c wifi: cfg80211: Do not create BSS entries for unsupported channels 2024-10-08 21:15:51 +02:00
sme.c wifi: cfg80211: fix two more possible UBSAN-detected off-by-one errors 2024-09-09 11:43:21 +02: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: Use kmemdup_array instead of kmemdup for multiple allocation 2024-08-27 10:28:56 +02: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