[ath:ath12k-mlo-qcn9274 64/81] drivers/net/wireless/ath/ath12k/mac.c:517 ath12k_get_link_bss_conf() error: buffer overflow 'vif->link_conf' 15 <= 15

Kalle Valo kvalo at kernel.org
Mon Nov 4 12:19:34 PST 2024


Dan Carpenter <dan.carpenter at linaro.org> writes:

> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git ath12k-mlo-qcn9274
> head:   7435d14d41d5d479a5e6a8a2cd4efdac9d928823
> commit: 8e3d460d4c16e52a70ebfa7e1dd0bd20bf739888 [64/81] wifi: ath12k:
> Use mac80211 vif's link conf instead of bss_conf
> config: csky-randconfig-r072-20241008
> (https://download.01.org/0day-ci/archive/20241009/202410090633.yjfmlMkr-lkp@intel.com/config)
> compiler: csky-linux-gcc (GCC) 14.1.0
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp at intel.com>
> | Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
> | Closes: https://lore.kernel.org/r/202410090633.yjfmlMkr-lkp@intel.com/
>
> New smatch warnings:
> drivers/net/wireless/ath/ath12k/mac.c:517 ath12k_get_link_bss_conf()
> error: buffer overflow 'vif->link_conf' 15 <= 15
> drivers/net/wireless/ath/ath12k/mac.c:517 ath12k_get_link_bss_conf()
> error: buffer overflow 'vif->link_conf' 15 <= 15
> drivers/net/wireless/ath/ath12k/mac.c:517 ath12k_get_link_bss_conf()
> error: buffer overflow 'vif->link_conf' 15 <= 15
> drivers/net/wireless/ath/ath12k/mac.c:517 ath12k_get_link_bss_conf()
> error: buffer overflow 'vif->link_conf' 15 <= 15
> drivers/net/wireless/ath/ath12k/mac.c:517 ath12k_get_link_bss_conf()
> error: buffer overflow 'vif->link_conf' 15 <= 15
>
> vim +517 drivers/net/wireless/ath/ath12k/mac.c
>
> 8e3d460d4c16e5 Sriram R 2024-08-16 507 struct ieee80211_bss_conf
> *ath12k_get_link_bss_conf(struct ath12k_link_vif *arvif)
> 8e3d460d4c16e5 Sriram R   2024-08-16  508  {
> 8e3d460d4c16e5 Sriram R   2024-08-16  509  	struct ieee80211_vif *vif = arvif->ahvif->vif;
> 8e3d460d4c16e5 Sriram R   2024-08-16  510  	struct ieee80211_bss_conf *link_conf;
> 8e3d460d4c16e5 Sriram R 2024-08-16 511 /* ieee80211_vif->link_conf[]s
> are rcu objects which requires rcu_read_lock()
> 8e3d460d4c16e5 Sriram R   2024-08-16  512  	 * to be held for safe access.
> 8e3d460d4c16e5 Sriram R   2024-08-16  513  	 */
> 8e3d460d4c16e5 Sriram R   2024-08-16  514  	if (arvif->link_id > IEEE80211_MLD_MAX_NUM_LINKS)
>
> Seems like this is an off by one.

Yup, fixed version of the patch (not yet submitted for review):

https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/commit/?h=ath12k-mlo&id=51a7ce0fc98b4fc70200cc113ec77a8159c40ca4

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches



More information about the ath12k mailing list