]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
EAPOL: Fix static analyzer warnings for pac_opaque_encr_key
authorAdriana Reus <adriana.reus@intel.com>
Sun, 3 Nov 2013 13:21:30 +0000 (15:21 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 5 Nov 2013 08:28:57 +0000 (10:28 +0200)
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>

src/eapol_auth/eapol_auth_sm.c

index 013d781a9866c8ea9404ef1568de0862656bd2b4..a2577814ec29db5f7de797a25740bac7cfd40dbf 100644 (file)
@@ -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;
                }