diff --git a/hostapd/main.c b/hostapd/main.c index 6a69412d0..09261d6be 100644 --- a/hostapd/main.c +++ b/hostapd/main.c @@ -903,8 +903,11 @@ int main(int argc, char *argv[]) !!(interfaces.iface[i]->drv_flags & WPA_DRIVER_FLAGS_AP_TEARDOWN_SUPPORT); hostapd_interface_deinit_free(interfaces.iface[i]); + interfaces.iface[i] = NULL; } os_free(interfaces.iface); + interfaces.iface = NULL; + interfaces.count = 0; #ifdef CONFIG_DPP dpp_global_deinit(interfaces.dpp); diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index 5515ab34d..79ad38c40 100644 --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c @@ -76,6 +76,8 @@ int hostapd_for_each_interface(struct hapd_interfaces *interfaces, int ret; for (i = 0; i < interfaces->count; i++) { + if (!interfaces->iface[i]) + continue; ret = cb(interfaces->iface[i], ctx); if (ret) return ret;