hostapd: do not modify hapd->started when stopping an AP
authorFelix Fietkau <nbd@nbd.name>
Wed, 13 Sep 2023 15:07:17 +0000 (17:07 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 13 Sep 2023 15:07:21 +0000 (17:07 +0200)
It can cause cleanup to be skipped on wifi restart, which can lead to
use-after-free bugs

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/services/hostapd/src/src/ap/ucode.c

index 849f8028e6f7e86db56f3d66964fa287dd679ebb..3dc122b7c2758024b76fd30445312b55c7ff60ab 100644 (file)
@@ -394,7 +394,7 @@ uc_hostapd_iface_stop(uc_vm_t *vm, size_t nargs)
                struct hostapd_data *hapd = iface->bss[i];
 
                hostapd_drv_stop_ap(hapd);
-               hapd->started = 0;
+               hapd->beacon_set_done = 0;
        }
 }
 
@@ -471,7 +471,6 @@ out:
                struct hostapd_data *hapd = iface->bss[i];
                int ret;
 
-               hapd->started = 1;
                hapd->conf->start_disabled = 0;
                hostapd_set_freq(hapd, conf->hw_mode, iface->freq,
                                 conf->channel,