From 0980c7face3e623aec2a24fc99a2c2e15298d711 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Mon, 1 Jun 2015 18:56:19 +0300 Subject: [PATCH] hostapd: Make sure band selection does not result in NULL dereference Explicitly check for iface->current_mode before dereferencing it. While this case may not happen in practice, it is better for the setup functions to be more careful when doing the initial band selection. Signed-off-by: Jouni Malinen --- src/ap/hw_features.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c index 069d1ae53..7c08e524d 100644 --- a/src/ap/hw_features.c +++ b/src/ap/hw_features.c @@ -744,6 +744,9 @@ static int hostapd_is_usable_chan(struct hostapd_iface *iface, int i; struct hostapd_channel_data *chan; + if (!iface->current_mode) + return 0; + for (i = 0; i < iface->current_mode->num_channels; i++) { chan = &iface->current_mode->channels[i]; if (chan->chan != channel) @@ -805,6 +808,12 @@ hostapd_check_chans(struct hostapd_iface *iface) static void hostapd_notify_bad_chans(struct hostapd_iface *iface) { + if (!iface->current_mode) { + hostapd_logger(iface->bss[0], NULL, HOSTAPD_MODULE_IEEE80211, + HOSTAPD_LEVEL_WARNING, + "Hardware does not support configured mode"); + return; + } hostapd_logger(iface->bss[0], NULL, HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_WARNING,