[PATCH] More strict when estimate whether a bss is in used
Jouni Malinen
j
Sat Dec 14 21:02:19 PST 2013
On Wed, Dec 11, 2013 at 05:03:37PM +0800, Guoqiang Liu wrote:
> If AP change the ssid, wpa_suuplicant only remove the previous bss
> enrty when the one not be included in scan result twice, as the
> DEFAULT_BSS_EXPIRATION_SCAN_COUNT is 2. and it have enough time for
> AP broadcasts new beacons frame with new ssid before the previous
> bss removed, and then two bss will share a same bssid.
>
> If new ssid is connected before. it will auto connect it, which
> will result in the previous bss enrty always in used, but it is
> invalid, the root cause is that wpa_suuplicant only distinguish
> different bsses base on bssid. but ssid shoud be check too.
Please read the top level CONTRIBUTIONS file and add a Signed-hostap:
tag into the commit message as described there.
I'm not completely sure I understood what the real problem here is.
Could you please clarify where this causes issues?
> diff --git a/wpa_supplicant/bss.c b/wpa_supplicant/bss.c
> static int wpa_bss_in_use(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
> + if (os_memcmp(bss->bssid, wpa_s->bssid, ETH_ALEN) == 0 ||
> + os_memcmp(bss->bssid, wpa_s->pending_bssid, ETH_ALEN) == 0) {
> + /*
> + * It not enough to only compare bssid to distinguish a bss,
> + * the case two bss share a same bssid can occurs if AP change
> + * SSID.
> + */
> + int ssid_len = wpa_s->current_ssid->ssid_len;
This looks risky.. Couldn't wpa_s->current_ssid be NULL here?
--
Jouni Malinen PGP id EFC895FA
More information about the Hostap
mailing list