From: Mohammed Shafi Shajakhan Date: Wed, 22 Mar 2017 11:42:38 +0000 (+0530) Subject: hostapd: Fix crash on consecutive channel switch failures X-Git-Tag: hostap_2_7~1411 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=775e986d5f3cd9ae17538117ef70852c6d77f496;p=thirdparty%2Fhostap.git hostapd: Fix crash on consecutive channel switch failures With multiple interface like AP and station which is already associated to some other AP, when we try to do channel switch for the AP mode (different from the operation channel support of station) and if the AP channel switch fails continously (including the fallback channel switch), results in a crash due to NULL pointer dereference. This is because hostapd_deinit_driver() assigns the driver context (drv_priv) to NULL as we are not able to bring up the interface with a new channel Signed-off-by: Mohammed Shafi Shajakhan --- diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h index 0bb7954ec..aa82eb3a7 100644 --- a/src/ap/ap_drv_ops.h +++ b/src/ap/ap_drv_ops.h @@ -274,7 +274,8 @@ static inline const char * hostapd_drv_get_radio_name(struct hostapd_data *hapd) static inline int hostapd_drv_switch_channel(struct hostapd_data *hapd, struct csa_settings *settings) { - if (hapd->driver == NULL || hapd->driver->switch_channel == NULL) + if (hapd->driver == NULL || hapd->driver->switch_channel == NULL || + hapd->drv_priv == NULL) return -ENOTSUP; return hapd->driver->switch_channel(hapd->drv_priv, settings);