Re: [PATCH] wpa_supplicant: fix race condition in mesh mpm new peer handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2019-02-12 at 15:12 +0100, Felix Fietkau wrote:
> When wpa_supplicant receives another new peer event before the first one
> has been processed, it tries to add a station to the driver a second time
> (which fails) and then tears down the station entry until another event
> comes in.
> Fix this by only adding a station to the driver if it didn't exist already.
> 
> Signed-off-by: Felix Fietkau <nbd@xxxxxxxx>
> ---
>  wpa_supplicant/mesh_mpm.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c
> index 44859396c..4bd130fb8 100644
> --- a/wpa_supplicant/mesh_mpm.c
> +++ b/wpa_supplicant/mesh_mpm.c
> @@ -685,11 +685,12 @@ static struct sta_info * mesh_mpm_add_peer(struct wpa_supplicant *wpa_s,
>  	}
>  
>  	sta = ap_get_sta(data, addr);
> -	if (!sta) {
> -		sta = ap_sta_add(data, addr);
> -		if (!sta)
> -			return NULL;
> -	}

That's kinda odd, how could you process another event between
those calls?

Or am I misunderstanding the situation?

johannes


_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux