From d9a38716ccf90b0ab307f570a30931684a1b8730 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 4 Feb 2012 12:18:56 +0200 Subject: [PATCH] Ignore TX status for Data frames from not associated STA 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 intended-for: hostap-1 --- src/ap/ieee802_11.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c index a1a7270fd..d9773ecc9 100644 --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c @@ -1,6 +1,6 @@ /* * hostapd / IEEE 802.11 Management - * Copyright (c) 2002-2011, Jouni Malinen + * Copyright (c) 2002-2012, Jouni Malinen * * 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); }