mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
staging: rtl8723bs: Fix incorrect sense of ether_addr_equal
commitc948c6915bupstream. In commitb37f9e1c38("staging: rtl8723bs: Fix lines too long in update_recvframe_attrib()."), the refactoring involved replacing two memcmp() calls with ether_addr_equal() calls. What the author missed is that memcmp() returns false when the two strings are equal, whereas ether_addr_equal() returns true when the two addresses are equal. One side effect of this error is that the strength of an unassociated AP was much stronger than the same AP after association. This bug is reported at bko#201611. Fixes:b37f9e1c38("staging: rtl8723bs: Fix lines too long in update_recvframe_attrib().") Cc: Stable <stable@vger.kernel.org> Cc: youling257 <youling257@gmail.com> Cc: u.srikant.patnaik@gmail.com Reported-and-tested-by: youling257 <youling257@gmail.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
fa299861ae
commit
6d956674df
@@ -109,12 +109,12 @@ static void update_recvframe_phyinfo(union recv_frame *precvframe,
|
||||
rx_bssid = get_hdr_bssid(wlanhdr);
|
||||
pkt_info.bssid_match = ((!IsFrameTypeCtrl(wlanhdr)) &&
|
||||
!pattrib->icv_err && !pattrib->crc_err &&
|
||||
!ether_addr_equal(rx_bssid, my_bssid));
|
||||
ether_addr_equal(rx_bssid, my_bssid));
|
||||
|
||||
rx_ra = get_ra(wlanhdr);
|
||||
my_hwaddr = myid(&padapter->eeprompriv);
|
||||
pkt_info.to_self = pkt_info.bssid_match &&
|
||||
!ether_addr_equal(rx_ra, my_hwaddr);
|
||||
ether_addr_equal(rx_ra, my_hwaddr);
|
||||
|
||||
|
||||
pkt_info.is_beacon = pkt_info.bssid_match &&
|
||||
|
||||
Reference in New Issue
Block a user