1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-07-08 14:27:40 +03:00
openwrt-xburst/package/madwifi/patches/391-vap_auth.patch
nbd 7b5f9bb12a madwifi: fix a wds related race condition
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17578 3c298f89-4303-0410-b956-a3cf2f4a3e73
2009-09-14 10:45:34 +00:00

30 lines
1.1 KiB
Diff

--- a/net80211/ieee80211_input.c
+++ b/net80211/ieee80211_input.c
@@ -1375,7 +1375,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;
@@ -1763,6 +1763,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)) { \
@@ -1777,6 +1779,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)) { \