summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/auth_srp_sb64.c2
-rw-r--r--lib/gnutls_handshake.c4
-rw-r--r--lib/gnutls_random.c4
-rw-r--r--src/crypt.c3
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)) {