driver_nl80211 broken again
Jouni Malinen
j
Wed Sep 30 15:13:53 PDT 2009
On Wed, Sep 30, 2009 at 03:19:28AM +0200, Maxim Levitsky wrote:
> So I didn't do the testing that soon...
> Got swamped by many bugs present in ubuntu 9.10.
>
> Now I have attempted same patch on top of wpa_supplicant, and it works.
Depends on your definition of working, I'd guess.. ;-)
> @@ -1302,8 +1302,10 @@ void wpa_supplicant_disassociate(struct wpa_supplicant *wpa_s,
> wpa_drv_disassociate(wpa_s, wpa_s->bssid, reason_code);
> + wpa_drv_deauthenticate(wpa_s, wpa_s->bssid, reason_code);
To me, this looks broken. When wpa_supplicant requests a
disassociastion, it is _only_ asking for disassociation, not
deauthentication. cfg80211/mac80211 may not currently handle that, but
as far as I can tell, it sounds like an issue there and not in
wpa_supplicant. Johannes may disagree with this, though.
> Would that be enough, or this is too hacky, and we need to audit each callsite of wpa_supplicant_disassociate
> and see if we need to send deauth frame too?
I don't think either of those options would be acceptable for
wpa_supplicant and the correct fix is to make cfg80211/mac80211 be able
to handle authentication to a STA that is already authenticated. If
that is not acceptable, this hack needs to be hidden in driver_nl80211.c
instead of polluting core wpa_supplicant code which is supposed to be
driver independent. In other words, make driver_nl80211.c deauth if auth
fails and then try auth again. I don't really like that much, but if
this needs to be worked around in wpa_supplicant, that is the most
likely place where such a change could be considered.
--
Jouni Malinen PGP id EFC895FA
More information about the Hostap
mailing list