summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2019-01-17 09:40:29 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2019-01-17 09:40:29 +0100
commit58c4cd9cc9203cbd52979d497d57ec457e7cda6a (patch)
tree8e124feaae128c282e07ff9d63f8229b01c3c98a
parente7e0100062aa404d82181c8b509af6ff1beb5f65 (diff)
downloadNetworkManager-58c4cd9cc9203cbd52979d497d57ec457e7cda6a.tar.gz
supplicant: don't set PMF when the supplicant doesn't support it
When the supplicant does not support PMF we wrongly set 'ieee80211w=0', but since the option is not recognized the connection fails. Don't set it when unsupported. Fixes: a9ab50efb10dfb50cfe897c58afa300f8b07f6ba
-rw-r--r--src/supplicant/nm-supplicant-config.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/supplicant/nm-supplicant-config.c b/src/supplicant/nm-supplicant-config.c
index 57adc8c133..4acb634e2c 100644
--- a/src/supplicant/nm-supplicant-config.c
+++ b/src/supplicant/nm-supplicant-config.c
@@ -758,6 +758,7 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self,
NMSupplicantConfigPrivate *priv = NM_SUPPLICANT_CONFIG_GET_PRIVATE (self);
const char *key_mgmt, *key_mgmt_conf, *auth_alg;
const char *psk;
+ gboolean set_pmf;
g_return_val_if_fail (NM_IS_SUPPLICANT_CONFIG (self), FALSE);
g_return_val_if_fail (setting != NULL, FALSE);
@@ -847,13 +848,14 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self,
pmf = NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE;
/* Check if we actually support PMF */
+ set_pmf = TRUE;
if (!priv->support_pmf) {
if (pmf == NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED) {
g_set_error_literal (error, NM_SUPPLICANT_ERROR, NM_SUPPLICANT_ERROR_CONFIG,
"Supplicant does not support PMF");
return FALSE;
- } else if (pmf == NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL)
- pmf = NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE;
+ }
+ set_pmf = FALSE;
}
/* Only WPA-specific things when using WPA */
@@ -867,7 +869,8 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self,
if (!ADD_STRING_LIST_VAL (self, setting, wireless_security, group, groups, "group", ' ', TRUE, NULL, error))
return FALSE;
- if ( !nm_streq (key_mgmt, "wpa-none")
+ if ( set_pmf
+ && !nm_streq (key_mgmt, "wpa-none")
&& NM_IN_SET (pmf,
NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE,
NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED)) {