diff options
author | Bala Krishna Bhamidipati <bbhami@codeaurora.org> | 2015-12-03 18:57:32 +0530 |
---|---|---|
committer | Bala Krishna Bhamidipati <bbhami@codeaurora.org> | 2016-01-29 19:48:24 +0530 |
commit | 6d8488e0d201f36bc9b8388dc66bdce910bbbbc6 (patch) | |
tree | e3931a5cfad75b5c785769888cc9e0c51e24fb5f | |
parent | 739b58022c8a0ce4c0013acc4c0b5ca5a49de33c (diff) | |
download | android_external_wpa_supplicant_8-6d8488e0d201f36bc9b8388dc66bdce910bbbbc6.tar.gz android_external_wpa_supplicant_8-6d8488e0d201f36bc9b8388dc66bdce910bbbbc6.tar.bz2 android_external_wpa_supplicant_8-6d8488e0d201f36bc9b8388dc66bdce910bbbbc6.zip |
eap_proxy: Handle crash if eap method is null
While conencting to eap SIM/AKA, if eap method, is not set in
config file , supplicant will crash accessing eap_method in conf.
Refer to eap methoods only if they are not NULL
Change-Id: Idd1f49157700948d6f3c6aa494c2dfa9ff125a41
CRs-Fixed: 969387
-rw-r--r-- | src/eap_peer/eap_proxy_qmi.c | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/src/eap_peer/eap_proxy_qmi.c b/src/eap_peer/eap_proxy_qmi.c index 3680f32e..3850bb61 100644 --- a/src/eap_peer/eap_proxy_qmi.c +++ b/src/eap_peer/eap_proxy_qmi.c @@ -1431,25 +1431,30 @@ static Boolean eap_proxy_build_identity(struct eap_proxy_sm *eap_proxy, u8 id, s } wpa_printf(MSG_ERROR, "eap_proxy: User selected sim = %d\n", sim_num + 1); - for (idx = 0; m[idx].vendor != EAP_VENDOR_IETF || - m[idx].method != EAP_TYPE_NONE; idx++) { - if (m[idx].method == EAP_TYPE_AKA) { - akaEnabled = TRUE; - eap_auth_start.eap_method_mask_valid = 1; - eap_auth_start.eap_method_mask |= QMI_AUTH_EAP_METHOD_MASK_AKA_V01; - wpa_printf(MSG_ERROR, "eap_proxy: AKA Enabled\n"); - } else if (m[idx].method == EAP_TYPE_SIM) { - simEnabled = TRUE; - eap_auth_start.eap_method_mask_valid = 1; - eap_auth_start.eap_method_mask |= QMI_AUTH_EAP_METHOD_MASK_SIM_V01; - wpa_printf(MSG_ERROR, "eap_proxy: SIM Enabled\n"); + if (m != NULL) { + for (idx = 0; m[idx].vendor != EAP_VENDOR_IETF || + m[idx].method != EAP_TYPE_NONE; idx++) { + if (m[idx].method == EAP_TYPE_AKA) { + akaEnabled = TRUE; + eap_auth_start.eap_method_mask_valid = 1; + eap_auth_start.eap_method_mask |= QMI_AUTH_EAP_METHOD_MASK_AKA_V01; + wpa_printf(MSG_ERROR, "eap_proxy: AKA Enabled\n"); + } else if (m[idx].method == EAP_TYPE_SIM) { + simEnabled = TRUE; + eap_auth_start.eap_method_mask_valid = 1; + eap_auth_start.eap_method_mask |= QMI_AUTH_EAP_METHOD_MASK_SIM_V01; + wpa_printf(MSG_ERROR, "eap_proxy: SIM Enabled\n"); #ifdef CONFIG_EAP_PROXY_AKA_PRIME - } else if (m[idx].method == EAP_TYPE_AKA_PRIME) { - eap_auth_start.eap_method_mask_valid = 1; - eap_auth_start.eap_method_mask |= QMI_AUTH_EAP_METHOD_MASK_AKA_PRIME_V01; - wpa_printf(MSG_ERROR, "eap_proxy: AKA Prime Enabled\n"); + } else if (m[idx].method == EAP_TYPE_AKA_PRIME) { + eap_auth_start.eap_method_mask_valid = 1; + eap_auth_start.eap_method_mask |= QMI_AUTH_EAP_METHOD_MASK_AKA_PRIME_V01; + wpa_printf(MSG_ERROR, "eap_proxy: AKA Prime Enabled\n"); #endif /* CONFIG_EAP_PROXY_AKA_PRIME */ + } } + } else { + wpa_printf(MSG_ERROR, "eap_proxy: eap_methods is NULL!\n"); + return FALSE; } eap_auth_start.eap_method_mask_valid = 1; |