EAP-TTLS: Fix possible memory leak in eap_ttls_phase2_request_mschap()

The msg buffer needs to be freed on these two error paths.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
Ilan Peer 2017-06-08 11:17:59 +03:00 committed by Jouni Malinen
parent 422570eec8
commit 83e003a913

View file

@ -625,15 +625,25 @@ static int eap_ttls_phase2_request_mschap(struct eap_sm *sm,
pos += 24; pos += 24;
if (pwhash) { if (pwhash) {
/* NT-Response */ /* NT-Response */
if (challenge_response(challenge, password, pos)) if (challenge_response(challenge, password, pos)) {
wpa_printf(MSG_ERROR,
"EAP-TTLS/MSCHAP: Failed derive password hash");
wpabuf_free(msg);
return -1; return -1;
}
wpa_hexdump_key(MSG_DEBUG, "EAP-TTLS: MSCHAP password hash", wpa_hexdump_key(MSG_DEBUG, "EAP-TTLS: MSCHAP password hash",
password, 16); password, 16);
} else { } else {
/* NT-Response */ /* NT-Response */
if (nt_challenge_response(challenge, password, password_len, if (nt_challenge_response(challenge, password, password_len,
pos)) pos)) {
wpa_printf(MSG_ERROR,
"EAP-TTLS/MSCHAP: Failed derive password");
wpabuf_free(msg);
return -1; return -1;
}
wpa_hexdump_ascii_key(MSG_DEBUG, "EAP-TTLS: MSCHAP password", wpa_hexdump_ascii_key(MSG_DEBUG, "EAP-TTLS: MSCHAP password",
password, password_len); password, password_len);
} }