Linux kernel source tree
Find a file
Dmitry Antipov a26a5107bc wifi: cfg80211: fix UBSAN noise in cfg80211_wext_siwscan()
Looking at https://syzkaller.appspot.com/bug?extid=1a3986bbd3169c307819
and running reproducer with CONFIG_UBSAN_BOUNDS, I've noticed the
following:

[ T4985] UBSAN: array-index-out-of-bounds in net/wireless/scan.c:3479:25
[ T4985] index 164 is out of range for type 'struct ieee80211_channel *[]'
<...skipped...>
[ T4985] Call Trace:
[ T4985]  <TASK>
[ T4985]  dump_stack_lvl+0x1c2/0x2a0
[ T4985]  ? __pfx_dump_stack_lvl+0x10/0x10
[ T4985]  ? __pfx__printk+0x10/0x10
[ T4985]  __ubsan_handle_out_of_bounds+0x127/0x150
[ T4985]  cfg80211_wext_siwscan+0x11a4/0x1260
<...the rest is not too useful...>

Even if we do 'creq->n_channels = n_channels' before 'creq->ssids =
(void *)&creq->channels[n_channels]', UBSAN treats the latter as
off-by-one error. Fix this by using pointer arithmetic rather than
an expression with explicit array indexing and use convenient
'struct_size()' to simplify the math here and in 'kzalloc()' above.

Fixes: 5ba63533bb ("cfg80211: fix alignment problem in scan request")
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Reviewed-by: Kees Cook <kees@kernel.org>
Link: https://patch.msgid.link/20240905150400.126386-1-dmantipov@yandex.ru
[fix coding style for multi-line calculation]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-09-06 12:54:57 +02:00
arch LoongArch: KVM: Invalidate guest steal time address on vCPU reset 2024-08-26 23:11:32 +08:00
block
certs
crypto
Documentation wireless-next patches for v6.12 2024-09-04 17:20:14 -07:00
drivers wireless-next patches for v6.12 2024-09-04 17:20:14 -07:00
fs nfsd-6.11 fixes: 2024-08-29 06:20:44 +12:00
include wireless-next patches for v6.12 2024-09-04 17:20:14 -07:00
init
io_uring io_uring/kbuf: sanitize peek buffer setup 2024-08-21 07:16:38 -06:00
ipc
kernel vfs-6.11-rc6.fixes 2024-08-27 16:57:35 +12:00
lib netdev_features: convert NETIF_F_LLTX to dev->lltx 2024-09-03 11:36:43 +02:00
LICENSES
mm mm: Fix missing folio invalidation calls during truncation 2024-08-24 16:09:16 +02:00
net wifi: cfg80211: fix UBSAN noise in cfg80211_wext_siwscan() 2024-09-06 12:54:57 +02:00
rust rust: net::phy unified genphy_read_status function for C22 and C45 registers 2024-08-30 10:27:35 +01:00
samples
scripts net: drop special comment style 2024-08-23 10:21:02 +01:00
security
sound sound fixes for 6.11-rc6 2024-08-28 06:24:22 +12:00
tools selftests: net: convert comma to semicolon 2024-09-04 16:55:49 -07:00
usr
virt
.clang-format
.cocciconfig
.editorconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap mailmap: update entry for Sriram Yagnaraman 2024-08-29 10:53:46 +02:00
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS net: phy: add Applied Micro QT2025 PHY driver 2024-08-30 10:27:35 +01:00
Makefile Linux 6.11-rc5 2024-08-25 19:07:11 +12:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.