]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Fix hostapd interface cleanup with multiple interfaces
authorJouni Malinen <quic_jouni@quicinc.com>
Fri, 18 Aug 2023 18:00:45 +0000 (21:00 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 18 Aug 2023 18:03:42 +0000 (21:03 +0300)
interfaces.iface[i] might be NULL when going through the cleanup of all
remaining interfaces at the end of the process termination. The changes
for clearing drv_priv in AP MLD cause that cleanup process to crash on
dereferencing a NULL pointer.

Fix this by explicitly checking that the interface context is available
before trying to clear the pointer to driver data.

Fixes: 7fa99b3246d1 ("AP: Allow starting multiple interfaces within single MLD")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
src/ap/hostapd.c

index 99d10bea979b08b8b47e477d0b45f462484afa27..966030d57213958e7da9a65aa0ea6a71ae1187c4 100644 (file)
@@ -401,7 +401,7 @@ static void hostapd_clear_drv_priv(struct hostapd_data *hapd)
        for (i = 0; i < hapd->iface->interfaces->count; i++) {
                struct hostapd_iface *iface = hapd->iface->interfaces->iface[i];
 
-               if (hapd->iface == iface)
+               if (hapd->iface == iface || !iface)
                        continue;
 
                if (iface->bss && iface->bss[0] &&