From 8b5019ecc26745155cf8a20a54db617bc8b429b5 Mon Sep 17 00:00:00 2001 From: est31 Date: Fri, 17 Apr 2015 07:12:56 +0200 Subject: [PATCH] Memory fixes --- srp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/srp.c b/srp.c index dbe8cf5..e8f6633 100644 --- a/srp.c +++ b/srp.c @@ -331,7 +331,7 @@ static int H_nn( mpz_t result, SRP_HashAlgorithm alg, const mpz_t N, const mpz_t int len_N = mpz_num_bytes(N); int len_n1 = mpz_num_bytes(n1); int len_n2 = mpz_num_bytes(n2); - int nbytes = len_n1 + len_n2; + int nbytes = len_N + len_N; unsigned char * bin = (unsigned char *) malloc( nbytes ); if (!bin) return 0; @@ -779,6 +779,8 @@ struct SRPUser * srp_user_new( SRP_HashAlgorithm alg, SRP_NGType ng_type, mpz_clear(usr->S); if (usr->username) free((void*)usr->username); + if (usr->username_verifier) + free((void*)usr->username_verifier); if (usr->password) { memset((void*)usr->password, 0, usr->password_len); @@ -805,6 +807,7 @@ void srp_user_delete( struct SRPUser * usr ) memset((void*)usr->password, 0, usr->password_len); free((char *)usr->username); + free((char *)usr->username_verifier); free((char *)usr->password); if (usr->bytes_A)