Ignore TX status for Data frames from not associated STA
authorJouni Malinen <j@w1.fi>
Sat, 4 Feb 2012 10:18:56 +0000 (12:18 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 4 Feb 2012 10:18:56 +0000 (12:18 +0200)
The TX status event may be received after a stations has been
disassociated in cases where the disassociation is following a
transmission of a Data frame. Ignore such events if the STA is not
associated at the moment the event is being processed. This avoids
confusing debug entries and rescheduling of the EAPOL TX timeouts for
STAs that are still in the STA table, but are not really in active EAPOL
session.

Signed-hostap: Jouni Malinen <j@w1.fi>
intended-for: hostap-1

src/ap/ieee802_11.c

index a1a7270..d9773ec 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * hostapd / IEEE 802.11 Management
- * Copyright (c) 2002-2011, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2002-2012, Jouni Malinen <j@w1.fi>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -1774,8 +1774,12 @@ void hostapd_eapol_tx_status(struct hostapd_data *hapd, const u8 *dst,
                                break;
                }
        }
-       if (sta == NULL)
+       if (sta == NULL || !(sta->flags & WLAN_STA_ASSOC)) {
+               wpa_printf(MSG_DEBUG, "Ignore TX status for Data frame to STA "
+                          MACSTR " that is not currently associated",
+                          MAC2STR(dst));
                return;
+       }
 
        ieee802_1x_eapol_tx_status(hapd, sta, data, len, ack);
 }