mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-12 07:24:22 +00:00
hostapd: fix a crash when disabling an interface during channel list update
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
bcf02c5d31
commit
e9722aef9e
@ -0,0 +1,28 @@
|
|||||||
|
From: Felix Fietkau <nbd@nbd.name>
|
||||||
|
Date: Wed, 20 Sep 2023 13:41:10 +0200
|
||||||
|
Subject: [PATCH] hostapd: cancel channel_list_update_timeout in
|
||||||
|
hostapd_cleanup_iface_partial
|
||||||
|
|
||||||
|
Fixes a crash when disabling an interface during channel list update
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/src/ap/hostapd.c
|
||||||
|
+++ b/src/ap/hostapd.c
|
||||||
|
@@ -569,6 +569,7 @@ static void sta_track_deinit(struct host
|
||||||
|
void hostapd_cleanup_iface_partial(struct hostapd_iface *iface)
|
||||||
|
{
|
||||||
|
wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
|
||||||
|
+ eloop_cancel_timeout(channel_list_update_timeout, iface, NULL);
|
||||||
|
#ifdef NEED_AP_MLME
|
||||||
|
hostapd_stop_setup_timers(iface);
|
||||||
|
#endif /* NEED_AP_MLME */
|
||||||
|
@@ -598,7 +599,6 @@ void hostapd_cleanup_iface_partial(struc
|
||||||
|
static void hostapd_cleanup_iface(struct hostapd_iface *iface)
|
||||||
|
{
|
||||||
|
wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
|
||||||
|
- eloop_cancel_timeout(channel_list_update_timeout, iface, NULL);
|
||||||
|
eloop_cancel_timeout(hostapd_interface_setup_failure_handler, iface,
|
||||||
|
NULL);
|
||||||
|
|
@ -107,14 +107,14 @@
|
|||||||
hostapd_ubus_free_bss(hapd);
|
hostapd_ubus_free_bss(hapd);
|
||||||
accounting_deinit(hapd);
|
accounting_deinit(hapd);
|
||||||
hostapd_deinit_wpa(hapd);
|
hostapd_deinit_wpa(hapd);
|
||||||
@@ -599,6 +602,7 @@ void hostapd_cleanup_iface_partial(struc
|
@@ -570,6 +573,7 @@ static void sta_track_deinit(struct host
|
||||||
static void hostapd_cleanup_iface(struct hostapd_iface *iface)
|
void hostapd_cleanup_iface_partial(struct hostapd_iface *iface)
|
||||||
{
|
{
|
||||||
wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
|
wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
|
||||||
+ hostapd_ucode_free_iface(iface);
|
+ hostapd_ucode_free_iface(iface);
|
||||||
eloop_cancel_timeout(channel_list_update_timeout, iface, NULL);
|
eloop_cancel_timeout(channel_list_update_timeout, iface, NULL);
|
||||||
eloop_cancel_timeout(hostapd_interface_setup_failure_handler, iface,
|
#ifdef NEED_AP_MLME
|
||||||
NULL);
|
hostapd_stop_setup_timers(iface);
|
||||||
@@ -1189,6 +1193,7 @@ static int hostapd_start_beacon(struct h
|
@@ -1189,6 +1193,7 @@ static int hostapd_start_beacon(struct h
|
||||||
hapd->driver->set_operstate(hapd->drv_priv, 1);
|
hapd->driver->set_operstate(hapd->drv_priv, 1);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user