NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/44506: ieee80211_match_bss matches all different SSIDs of the identical length
>Number: 44506
>Category: kern
>Synopsis: ieee80211_match_bss matches all different SSIDs of the
>identical length
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Feb 02 23:25:00 +0000 2011
>Originator: James Woo
>Release: NetBSD 4.0.1
>Organization:
Ricoh Americas
>Environment:
System: NetBSD ibm143 4.0.1 NetBSD 4.0.1 (ibm) #304: Wed Feb 2 13:56:50 UTC
2011 root@ibm143:/usr/src/sys/arch/i386/compile/ibm i386
Architecture: i386
Machine: i386
>Description:
ieee80211_match will match all different SSIDs of the identical length
Connection is only successful if the target SSID has a higher RSSI than
the other "matching" SSIDs. Otherwise, connection is not possible if
the target SSID
has a lower RSSI than the other "matching" SSIDs.
>How-To-Repeat:
Assign different SSIDs of identical length to several APs.
Try to connect to the one with the lowest RSSI. It will fail to connect.
Now connect to the one with the highest RSSI. It will succeed.
>Fix:
net80211/ieee80211_node.c, line 532-534 was
if (ic->ic_dess_esslen != 0 &&
(ni->ni_esslen != ic->ic_des_esslen ||
memcmp(ni->ni_essid, ic->ic_des_essid, ic->ic_des_esslen) != 0))
should be change to:
if (ic->ic_des_esslen != 0) {
if (ni->ni_esslen == ic->ic_des_esslen) {
if (memcmp(ni->ni_essid, ic->ic_des_essid, ic->ic_dess_esslen)
!= 0)
Home |
Main Index |
Thread Index |
Old Index