Function r8712_find_network() were returning wlan_network even if it
didn't match required address. This happened due to not checking if
list end was reached and returning last processed wlan_network.

Signed-off-by: Sergei Krainov <[email protected]>
---
 drivers/staging/rtl8712/rtl871x_mlme.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c 
b/drivers/staging/rtl8712/rtl871x_mlme.c
index 8a97307fbbd6..c38161114b80 100644
--- a/drivers/staging/rtl8712/rtl871x_mlme.c
+++ b/drivers/staging/rtl8712/rtl871x_mlme.c
@@ -146,6 +146,8 @@ static struct wlan_network *r8712_find_network(struct  
__queue *scanned_queue,
                if (!memcmp(addr, pnetwork->network.MacAddress, ETH_ALEN))
                        break;
        }
+       if (plist == phead)
+               pnetwork = NULL;
        spin_unlock_irqrestore(&scanned_queue->lock, irqL);
        return pnetwork;
 }
-- 
2.25.1

Reply via email to