1
linux/net/mac80211
Gustavo A. R. Silva cf44e74504 wifi: mac80211: ieee80211_i: Fix memory corruption bug in struct ieee80211_chanctx
Move the `struct ieee80211_chanctx_conf conf` to the end of
`struct ieee80211_chanctx` and fix a memory corruption bug
triggered e.g. in `hwsim_set_chanctx_magic()`: `radar_detected`
is being overwritten when `cp->magic = HWSIM_CHANCTX_MAGIC;`
See the function call sequence below:

drv_add_chanctx(... struct ieee80211_chanctx *ctx) ->
    local->ops->add_chanctx(&local->hw, &ctx->conf) ->
	mac80211_hwsim_add_chanctx(... struct ieee80211_chanctx_conf *ctx) ->
	    hwsim_set_chanctx_magic(ctx)

This also happens in a number of other drivers.

Also, add a code comment to try to prevent people from introducing
new members after `struct ieee80211_chanctx_conf conf`. Notice that
`struct ieee80211_chanctx_conf` is a flexible structure --a structure
that contains a flexible-array member, so it should always be at
the end of any other containing structures.

This change also fixes 50 of the following warnings:

net/mac80211/ieee80211_i.h:895:39: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]

-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
getting ready to enable it, globally.

Fixes: bca8bc0399 ("wifi: mac80211: handle ieee80211_radar_detected() for MLO")
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://patch.msgid.link/ZxwWPrncTeSi1UTq@kspp
[also refer to other drivers in commit message]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-10-26 00:42:49 +02:00
..
tests wifi: mac80211: pass parsed TPE data to drivers 2024-05-23 10:35:04 +02:00
aead_api.c
aead_api.h
aes_ccm.h
aes_cmac.c
aes_cmac.h
aes_gcm.h
aes_gmac.c
aes_gmac.h
agg-rx.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
agg-tx.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
airtime.c wifi: mac80211: introduce EHT rate support in AQL airtime 2024-09-06 12:58:36 +02:00
cfg.c wifi: mac80211: do not pass a stopped vif to the driver in .get_txpower 2024-10-08 21:24:19 +02:00
chan.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
debug.h wifi: mac80211: fix mlme_link_id_dbg() 2024-03-25 15:22:53 +01:00
debugfs_key.c
debugfs_key.h
debugfs_netdev.c
debugfs_netdev.h
debugfs_sta.c
debugfs_sta.h
debugfs.c wifi: mac80211: remove DEAUTH_NEED_MGD_TX_PREP 2024-06-28 09:56:30 +02:00
debugfs.h
driver-ops.c Highlights this time are: 2024-06-27 13:53:43 -07:00
driver-ops.h wifi: mac80211: inform the low level if drv_stop() is a suspend 2024-06-26 10:25:46 +02:00
drop.h wifi: mac80211: improve drop for action frame return 2024-03-25 15:39:28 +01:00
eht.c
ethtool.c
fils_aead.c
fils_aead.h
he.c wifi: mac80211: correctly parse Spatial Reuse Parameter Set element 2024-05-29 15:35:12 +02:00
ht.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
ibss.c wifi: mac80211: extend ifcomb check functions for multi-radio 2024-07-09 11:36:12 +02:00
ieee80211_i.h wifi: mac80211: ieee80211_i: Fix memory corruption bug in struct ieee80211_chanctx 2024-10-26 00:42:49 +02:00
iface.c wifi: mac80211: use two-phase skb reclamation in ieee80211_do_stop() 2024-09-09 11:45:06 +02:00
Kconfig mac80211: MAC80211_MESSAGE_TRACING should depend on TRACING 2024-10-08 21:14:57 +02:00
key.c wireless fixes for v6.12-rc5 2024-10-25 10:44:41 +01:00
key.h
led.c
led.h
link.c wifi: mac80211: Convert color collision detection to wiphy work 2024-10-08 21:24:19 +02:00
main.c mac80211: fix user-power when emulating chanctx 2024-10-25 17:53:38 +02:00
Makefile
mesh_hwmp.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
mesh_pathtbl.c wifi: mac80211: remove redundant unlikely() around IS_ERR() 2024-08-27 10:28:55 +02:00
mesh_plink.c
mesh_ps.c
mesh_sync.c
mesh.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
mesh.h wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
michael.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
michael.h
mlme.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ocb.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
offchannel.c wifi: mac80211: don't use rate mask for offchannel TX either 2024-08-27 10:13:23 +02:00
parse.c wifi: mac80211: correct EHT EIRP TPE parsing 2024-06-12 12:25:54 +02:00
pm.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
rate.c wifi: mac80211: don't use rate mask for offchannel TX either 2024-08-27 10:13:23 +02:00
rate.h
rc80211_minstrel_ht_debugfs.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
rc80211_minstrel_ht.c
rc80211_minstrel_ht.h
rx.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
s1g.c
scan.c wifi: cfg80211/mac80211: use proper link ID for DFS 2024-09-06 13:01:05 +02:00
spectmgmt.c wifi: mac80211: fix AP chandef capturing in CSA 2024-07-10 12:35:58 +02:00
sta_info.c wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup() 2024-05-29 15:19:55 +02:00
sta_info.h wifi: mac80211: add ieee80211_tdls_sta_link_id() 2024-06-26 10:22:04 +02:00
status.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
tdls.c wifi: mac80211: remove TDLS peers only on affected link 2024-03-04 14:34:03 +01:00
tkip.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
tkip.h
trace_msg.h
trace.c
trace.h wifi: mac80211: inform the low level if drv_stop() is a suspend 2024-06-26 10:25:46 +02:00
tx.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
util.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
vht.c wifi: mac80211: optionally pass chandef to ieee80211_sta_cur_vht_bw() 2024-06-26 10:21:54 +02:00
wbrf.c
wep.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
wep.h
wme.c
wme.h
wpa.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
wpa.h