aboutsummaryrefslogtreecommitdiffstats
path: root/src/eapol_auth/eapol_auth_sm.c
diff options
context:
space:
mode:
authorAdriana Reus <adriana.reus@intel.com>2013-11-03 13:21:30 (GMT)
committerJouni Malinen <j@w1.fi>2013-11-05 08:28:57 (GMT)
commit72c12c1d300a446e9c7696abdda8378eb66487a7 (patch)
tree9822e48c9ae37b96e942298f360343444400d335 /src/eapol_auth/eapol_auth_sm.c
parent3139270903af6f0fc4e2d26ab4125071eae45af9 (diff)
downloadhostap-72c12c1d300a446e9c7696abdda8378eb66487a7.zip
hostap-72c12c1d300a446e9c7696abdda8378eb66487a7.tar.gz
hostap-72c12c1d300a446e9c7696abdda8378eb66487a7.tar.bz2
EAPOL: Fix static analyzer warnings for pac_opaque_encr_key
The allocation was not verified to complete successfully and the allocated memory was not freed on error paths. Signed-hostap: Adriana Reus <adriana.reus@intel.com>
Diffstat (limited to 'src/eapol_auth/eapol_auth_sm.c')
-rw-r--r--src/eapol_auth/eapol_auth_sm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/eapol_auth/eapol_auth_sm.c b/src/eapol_auth/eapol_auth_sm.c
index 013d781..a257781 100644
--- a/src/eapol_auth/eapol_auth_sm.c
+++ b/src/eapol_auth/eapol_auth_sm.c
@@ -1062,6 +1062,10 @@ static int eapol_auth_conf_clone(struct eapol_auth_config *dst,
}
if (src->pac_opaque_encr_key) {
dst->pac_opaque_encr_key = os_malloc(16);
+ if (dst->pac_opaque_encr_key == NULL) {
+ os_free(dst->eap_req_id_text);
+ return -1;
+ }
os_memcpy(dst->pac_opaque_encr_key, src->pac_opaque_encr_key,
16);
} else
@@ -1070,6 +1074,7 @@ static int eapol_auth_conf_clone(struct eapol_auth_config *dst,
dst->eap_fast_a_id = os_malloc(src->eap_fast_a_id_len);
if (dst->eap_fast_a_id == NULL) {
os_free(dst->eap_req_id_text);
+ os_free(dst->pac_opaque_encr_key);
return -1;
}
os_memcpy(dst->eap_fast_a_id, src->eap_fast_a_id,
@@ -1081,6 +1086,7 @@ static int eapol_auth_conf_clone(struct eapol_auth_config *dst,
dst->eap_fast_a_id_info = os_strdup(src->eap_fast_a_id_info);
if (dst->eap_fast_a_id_info == NULL) {
os_free(dst->eap_req_id_text);
+ os_free(dst->pac_opaque_encr_key);
os_free(dst->eap_fast_a_id);
return -1;
}