From 3fbd036ea99ec73b48ddb48fd796f701675f6597 Mon Sep 17 00:00:00 2001 From: Michal Kazior Date: Wed, 28 May 2014 11:57:10 +0200 Subject: [PATCH] hostapd: Prevent double interface disabling from segfaulting Performing, e.g. `wpa_cli -p /var/run/hostapd raw DISABLE` twice led to hostapd segmentation fault if multiple BSSes were configured. Fix this by checking if there is anything to disable at all before trying. Signed-off-by: Michal Kazior --- src/ap/hostapd.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index 243f4117a..784da2a4a 100644 --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c @@ -1692,6 +1692,13 @@ int hostapd_disable_iface(struct hostapd_iface *hapd_iface) if (hapd_iface == NULL) return -1; + + if (hapd_iface->bss[0]->drv_priv == NULL) { + wpa_printf(MSG_INFO, "Interface %s already disabled", + hapd_iface->conf->bss[0]->iface); + return -1; + } + wpa_msg(hapd_iface->bss[0]->msg_ctx, MSG_INFO, AP_EVENT_DISABLED); driver = hapd_iface->bss[0]->driver; drv_priv = hapd_iface->bss[0]->drv_priv;