diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c index 2a86436e4..db0259d86 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -237,6 +237,12 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s, if (bss->ssid.security_policy != SECURITY_WPA_PSK && bss->ssid.security_policy != SECURITY_PLAINTEXT) goto no_wps; +#ifdef CONFIG_WPS2 + if (bss->ssid.security_policy == SECURITY_WPA_PSK && + (!(pairwise & WPA_CIPHER_CCMP) || !(bss->wpa & 2))) + goto no_wps; /* WPS2 does not allow WPA/TKIP-only + * configuration */ +#endif /* CONFIG_WPS2 */ bss->eap_server = 1; bss->wps_state = 2; bss->ap_setup_locked = 2;