Re: [PATCH] cw1200: Fix concurrency use-after-free bugs in cw1200_hw_scan()

From: Kalle Valo
Date: Thu Dec 20 2018 - 01:50:01 EST


Jia-Ju Bai <baijiaju1990@xxxxxxxxx> wrote:

> The function cw1200_bss_info_changed() and cw1200_hw_scan() can be
> concurrently executed.
> The two functions both access a possible shared variable "frame.skb".
>
> This shared variable is freed by dev_kfree_skb() in cw1200_upload_beacon(),
> which is called by cw1200_bss_info_changed(). The free operation is
> protected by a mutex lock "priv->conf_mutex" in cw1200_bss_info_changed().
>
> In cw1200_hw_scan(), this shared variable is accessed without the
> protection of the mutex lock "priv->conf_mutex".
> Thus, concurrency use-after-free bugs may occur.
>
> To fix these bugs, the original calls to mutex_lock(&priv->conf_mutex) and
> mutex_unlock(&priv->conf_mutex) are moved to the places, which can
> protect the accesses to the shared variable.
>
> Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxxxx>

Patch applied to wireless-drivers-next.git, thanks.

4f68ef64cd7f cw1200: Fix concurrency use-after-free bugs in cw1200_hw_scan()

--
https://patchwork.kernel.org/patch/10730469/

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