From abd7d3be9ca88168dbf7837ea906ed788e5a0e94 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 9 Apr 2014 18:04:33 +0200 Subject: eap-mschapv2: Fix potential leaks in case of invalid messages from servers --- src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c') diff --git a/src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c b/src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c index 49e3dd142..511506869 100644 --- a/src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c +++ b/src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c @@ -792,12 +792,14 @@ static status_t process_peer_success(private_eap_mschapv2_t *this, "invalid auth string"); goto error; } + chunk_free(&auth_string); hex = chunk_create(token, AUTH_RESPONSE_LEN - 2); auth_string = chunk_from_hex(hex, NULL); } else if (strpfx(token, "M=")) { token += 2; + free(msg); msg = strdup(token); } } @@ -883,6 +885,7 @@ static status_t process_peer_failure(private_eap_mschapv2_t *this, "invalid challenge"); goto error; } + chunk_free(&challenge); hex = chunk_create(token, 2 * CHALLENGE_LEN); challenge = chunk_from_hex(hex, NULL); } @@ -893,6 +896,7 @@ static status_t process_peer_failure(private_eap_mschapv2_t *this, else if (strpfx(token, "M=")) { token += 2; + free(msg); msg = strdup(token); } } -- cgit v1.2.3