aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBala Krishna Bhamidipati <bbhami@codeaurora.org>2015-12-03 18:57:32 +0530
committerBala Krishna Bhamidipati <bbhami@codeaurora.org>2016-01-29 19:48:24 +0530
commit6d8488e0d201f36bc9b8388dc66bdce910bbbbc6 (patch)
treee3931a5cfad75b5c785769888cc9e0c51e24fb5f
parent739b58022c8a0ce4c0013acc4c0b5ca5a49de33c (diff)
downloadandroid_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.c37
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;