From: Jouni Malinen Date: Sun, 11 Nov 2012 11:15:49 +0000 (+0200) Subject: EAP-SIM/AKA server: Fix memory leak in error path X-Git-Tag: hostap_2_0~139 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58fd49c05d2bde5c04dc1dc1eede146b43992feb;p=thirdparty%2Fhostap.git EAP-SIM/AKA server: Fix memory leak in error path If identity round limit is reached, EAP-SIM/AKA session is terminated. This needs to free the allocated message. Signed-hostap: Jouni Malinen --- diff --git a/src/eap_server/eap_server_aka.c b/src/eap_server/eap_server_aka.c index a965cac49..177b58dac 100644 --- a/src/eap_server/eap_server_aka.c +++ b/src/eap_server/eap_server_aka.c @@ -365,6 +365,7 @@ static struct wpabuf * eap_aka_build_identity(struct eap_sm *sm, eap_sim_msg_add(msg, EAP_SIM_AT_ANY_ID_REQ, 0, NULL, 0); } else if (data->identity_round > 3) { /* Cannot use more than three rounds of Identity messages */ + eap_sim_msg_free(msg); return NULL; } else if (sm->identity && sm->identity_len > 0 && (sm->identity[0] == EAP_AKA_REAUTH_ID_PREFIX || diff --git a/src/eap_server/eap_server_sim.c b/src/eap_server/eap_server_sim.c index f83c3cbff..b531241e8 100644 --- a/src/eap_server/eap_server_sim.c +++ b/src/eap_server/eap_server_sim.c @@ -117,6 +117,7 @@ static struct wpabuf * eap_sim_build_start(struct eap_sm *sm, eap_sim_msg_add(msg, EAP_SIM_AT_ANY_ID_REQ, 0, NULL, 0); } else if (data->start_round > 3) { /* Cannot use more than three rounds of Start messages */ + eap_sim_msg_free(msg); return NULL; } else if (data->start_round == 0) { /*