hostapd: Avoid crashing on station mode disassoc event
Some driver wrappers may end up indicating a disassociation or deauthentication event without the address of the station, e.g., based on a previous non-AP mode event. Avoid crashing hostapd by verifying that the require address parameter is available in the event before processing it.
This commit is contained in:
parent
f19858f5a8
commit
83e843e830
1 changed files with 13 additions and 0 deletions
|
@ -195,6 +195,19 @@ void hostapd_notif_disassoc(struct hostapd_data *hapd, const u8 *addr)
|
||||||
{
|
{
|
||||||
struct sta_info *sta;
|
struct sta_info *sta;
|
||||||
|
|
||||||
|
if (addr == NULL) {
|
||||||
|
/*
|
||||||
|
* This could potentially happen with unexpected event from the
|
||||||
|
* driver wrapper. This was seen at least in one case where the
|
||||||
|
* driver ended up reporting a station mode event while hostapd
|
||||||
|
* was running, so better make sure we stop processing such an
|
||||||
|
* event here.
|
||||||
|
*/
|
||||||
|
wpa_printf(MSG_DEBUG, "hostapd_notif_disassoc: Skip event "
|
||||||
|
"with no address");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211,
|
hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211,
|
||||||
HOSTAPD_LEVEL_INFO, "disassociated");
|
HOSTAPD_LEVEL_INFO, "disassociated");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue