diff options
author | Jouni Malinen <j@w1.fi> | 2009-08-16 19:07:57 +0300 |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2009-08-16 19:07:57 +0300 |
commit | c5f6ad5766f37d4c84c021cb51ee5a9ed60b8f80 (patch) | |
tree | ce6552d5e113f581ec4b099dee596fd025397cca /src/eap_server | |
parent | ce78b289c49ed9eb2c81f34f35f3d198791ccb15 (diff) | |
download | external_wpa_supplicant_8_ti-c5f6ad5766f37d4c84c021cb51ee5a9ed60b8f80.zip external_wpa_supplicant_8_ti-c5f6ad5766f37d4c84c021cb51ee5a9ed60b8f80.tar.gz external_wpa_supplicant_8_ti-c5f6ad5766f37d4c84c021cb51ee5a9ed60b8f80.tar.bz2 |
Verify CHAP/MSCHAPv2 return code
Check the return code in some (but not yet all) places where the
functions from ms_funcs.c are used.
Diffstat (limited to 'src/eap_server')
-rw-r--r-- | src/eap_server/eap_mschapv2.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/eap_server/eap_mschapv2.c b/src/eap_server/eap_mschapv2.c index 20e7ade..8b7b352 100644 --- a/src/eap_server/eap_mschapv2.c +++ b/src/eap_server/eap_mschapv2.c @@ -295,6 +295,7 @@ static void eap_mschapv2_process_response(struct eap_sm *sm, u8 expected[24]; const u8 *username, *user; size_t username_len, user_len; + int res; pos = eap_hdr_validate(EAP_VENDOR_IETF, EAP_TYPE_MSCHAPV2, respData, &len); @@ -372,17 +373,22 @@ static void eap_mschapv2_process_response(struct eap_sm *sm, username, username_len); if (sm->user->password_hash) { - generate_nt_response_pwhash(data->auth_challenge, - peer_challenge, - username, username_len, - sm->user->password, - expected); + res = generate_nt_response_pwhash(data->auth_challenge, + peer_challenge, + username, username_len, + sm->user->password, + expected); } else { - generate_nt_response(data->auth_challenge, peer_challenge, - username, username_len, - sm->user->password, - sm->user->password_len, - expected); + res = generate_nt_response(data->auth_challenge, + peer_challenge, + username, username_len, + sm->user->password, + sm->user->password_len, + expected); + } + if (res) { + data->state = FAILURE; + return; } if (os_memcmp(nt_response, expected, 24) == 0) { |