diff options
-rw-r--r-- | lib/auth_srp_sb64.c | 2 | ||||
-rw-r--r-- | lib/gnutls_handshake.c | 4 | ||||
-rw-r--r-- | lib/gnutls_random.c | 4 | ||||
-rw-r--r-- | src/crypt.c | 3 |
4 files changed, 7 insertions, 6 deletions
diff --git a/lib/auth_srp_sb64.c b/lib/auth_srp_sb64.c index c43f818ede..9ef8fa05db 100644 --- a/lib/auth_srp_sb64.c +++ b/lib/auth_srp_sb64.c @@ -161,6 +161,8 @@ int _gnutls_sbase64_encode(uint8 * data, int data_size, uint8 ** result) memcpy(&(*result)[0], tmpres, tmp); i = mod; j = tmp; + + (*result)[j] = 0; } /* encode the rest */ diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index 6d8bb7dde5..2eba02f9a9 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -865,7 +865,7 @@ int _gnutls_recv_handshake(GNUTLS_STATE state, uint8 ** data, { int ret; uint32 length32 = 0; - opaque *dataptr; + opaque *dataptr = NULL; HandshakeType recv_type; ret = _gnutls_recv_handshake_header(state, type, &recv_type); @@ -890,7 +890,7 @@ int _gnutls_recv_handshake(GNUTLS_STATE state, uint8 ** data, return GNUTLS_E_UNEXPECTED_PACKET_LENGTH; } - if (dataptr == NULL) { + if (dataptr == NULL && length32 > 0) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; } diff --git a/lib/gnutls_random.c b/lib/gnutls_random.c index 7c9e17d052..9c363da1f3 100644 --- a/lib/gnutls_random.c +++ b/lib/gnutls_random.c @@ -75,8 +75,8 @@ int _gnutls_get_random(opaque * res, int bytes, int dev) } memcpy( res, buf, bytes); - gnutls_free(buf); - + gcry_free(buf); + return 0; #endif diff --git a/src/crypt.c b/src/crypt.c index ee42fbc4ec..7446a8476c 100644 --- a/src/crypt.c +++ b/src/crypt.c @@ -380,7 +380,7 @@ int crypt_int(char *username, char *passwd, int crypt, int salt, if (put==0) { fprintf(fd, "%s:%s:%u\n", username, cr, iindex); } - free(cr); + gnutls_free(cr); fclose(fd); fclose(fd2); @@ -422,7 +422,6 @@ static int read_conf_values(MPI * g, MPI * n, char *str, int str_size) tmp_size = _gnutls_sbase64_decode(p, len, &tmp); if (tmp_size < 0) { - gnutls_free(tmp); return -1; } if (gcry_mpi_scan(g, GCRYMPI_FMT_USG, tmp, &tmp_size)) { |