summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstsp <stsp@openbsd.org>2017-02-03 09:32:26 +0000
committerstsp <stsp@openbsd.org>2017-02-03 09:32:26 +0000
commit960d072b54be254559a635dd3ea3ec652c51e1b9 (patch)
treebfa15f4d7feb4081843b2b82a1fd12df2fc523c2
parentExplicitly ask EFI to allocate the page we picked out to lay our (diff)
downloadwireguard-openbsd-960d072b54be254559a635dd3ea3ec652c51e1b9.tar.xz
wireguard-openbsd-960d072b54be254559a635dd3ea3ec652c51e1b9.zip
Fix 11b clients sending bogus ratesets in association requests. The common
rateset with the AP is calculated only after the association response was received, which is too late. Fix rates when an AP is selected after a scan. ok mpi@ tb@
-rw-r--r--sys/net80211/ieee80211_node.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c
index 62c809cb46d..4ac043d918b 100644
--- a/sys/net80211/ieee80211_node.c
+++ b/sys/net80211/ieee80211_node.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211_node.c,v 1.113 2017/02/02 16:47:53 stsp Exp $ */
+/* $OpenBSD: ieee80211_node.c,v 1.114 2017/02/03 09:32:26 stsp Exp $ */
/* $NetBSD: ieee80211_node.c,v 1.14 2004/05/09 09:18:47 dyoung Exp $ */
/*-
@@ -676,6 +676,12 @@ ieee80211_end_scan(struct ifnet *ifp)
ic->ic_curmode = ieee80211_chan2mode(ic, ni->ni_chan);
+ /* Make sure we send valid rates in an association request. */
+ if (ic->ic_opmode == IEEE80211_M_STA)
+ ieee80211_fix_rate(ic, ni,
+ IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE |
+ IEEE80211_F_DONEGO | IEEE80211_F_DODEL);
+
if (ic->ic_flags & IEEE80211_F_RSNON)
ieee80211_choose_rsnparams(ic);
else if (ic->ic_flags & IEEE80211_F_WEPON)