Fix hostapd interface cleanup with multiple interfaces

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: 7fa99b3246 ("AP: Allow starting multiple interfaces within single MLD")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
Jouni Malinen 2023-08-18 21:00:45 +03:00 committed by Jouni Malinen
parent 7637d0f250
commit dd1330b502

View 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] &&