madwifi: fix the long standing bug that is triggered by nodes getting a timeout on one vap, then moving to another
SVN-Revision: 14171
This commit is contained in:
29
package/madwifi/patches/391-vap_auth.patch
Normal file
29
package/madwifi/patches/391-vap_auth.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
--- a/net80211/ieee80211_input.c
|
||||
+++ b/net80211/ieee80211_input.c
|
||||
@@ -1374,7 +1386,7 @@ ieee80211_auth_open(struct ieee80211_nod
|
||||
vap->iv_stats.is_rx_bad_auth++; /* XXX maybe a unique error? */
|
||||
if (vap->iv_opmode == IEEE80211_M_HOSTAP) {
|
||||
if (ni == vap->iv_bss) {
|
||||
- ni = ieee80211_dup_bss(vap, wh->i_addr2, 0);
|
||||
+ ni = ieee80211_dup_bss(vap, wh->i_addr2, 1);
|
||||
if (ni == NULL)
|
||||
return;
|
||||
tmpnode = 1;
|
||||
@@ -1762,6 +1774,8 @@ ieee80211_ssid_mismatch(struct ieee80211
|
||||
}
|
||||
|
||||
#define IEEE80211_VERIFY_SSID(_ni, _ssid) do { \
|
||||
+ if ((_ni)->ni_esslen == 0) \
|
||||
+ return; \
|
||||
if ((_ssid)[1] != 0 && \
|
||||
((_ssid)[1] != (_ni)->ni_esslen || \
|
||||
memcmp((_ssid) + 2, (_ni)->ni_essid, (_ssid)[1]) != 0)) { \
|
||||
@@ -1776,6 +1790,8 @@ ieee80211_ssid_mismatch(struct ieee80211
|
||||
} while (0)
|
||||
#else /* !IEEE80211_DEBUG */
|
||||
#define IEEE80211_VERIFY_SSID(_ni, _ssid) do { \
|
||||
+ if ((_ni)->ni_esslen == 0) \
|
||||
+ return; \
|
||||
if ((_ssid)[1] != 0 && \
|
||||
((_ssid)[1] != (_ni)->ni_esslen || \
|
||||
memcmp((_ssid) + 2, (_ni)->ni_essid, (_ssid)[1]) != 0)) { \
|
||||
Reference in New Issue
Block a user