summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-02-26 23:38:14 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-02-26 23:38:14 +0100
commit100bc501a4e850eb9ba21bb5088b2a582e422c80 (patch)
tree6aad3e27b4c0c876c10ad958dddb463ef40ad1af
parent7e1b0d936e90c932376cdb9dc86f2fff604dcb65 (diff)
downloadgnutls-100bc501a4e850eb9ba21bb5088b2a582e422c80.tar.gz
Small fixes.
-rw-r--r--lib/gnutls_db.c3
-rw-r--r--lib/gnutls_handshake.c3
-rw-r--r--lib/gnutls_session_pack.c7
3 files changed, 9 insertions, 4 deletions
diff --git a/lib/gnutls_db.c b/lib/gnutls_db.c
index 1ef7e73650..446acf4174 100644
--- a/lib/gnutls_db.c
+++ b/lib/gnutls_db.c
@@ -306,13 +306,14 @@ _gnutls_server_restore_session (gnutls_session_t session,
/* expiration check is performed inside */
ret = gnutls_session_set_data (session, data.data, data.size);
+ gnutls_free (data.data);
+
if (ret < 0)
{
gnutls_assert ();
return ret;
}
- gnutls_free (data.data);
return 0;
}
diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c
index 5d216ccd19..3f1a418c5e 100644
--- a/lib/gnutls_handshake.c
+++ b/lib/gnutls_handshake.c
@@ -3101,7 +3101,6 @@ _gnutls_handshake_server (gnutls_session_t session)
return 0;
}
-
int
_gnutls_generate_session_id (uint8_t * session_id, uint8_t * len)
{
@@ -3109,7 +3108,7 @@ _gnutls_generate_session_id (uint8_t * session_id, uint8_t * len)
*len = TLS_MAX_SESSION_ID_SIZE;
- ret = _gnutls_rnd (GNUTLS_RND_NONCE, session_id, *len);
+ ret = _gnutls_rnd (GNUTLS_RND_NONCE, session_id, TLS_MAX_SESSION_ID_SIZE);
if (ret < 0)
{
gnutls_assert ();
diff --git a/lib/gnutls_session_pack.c b/lib/gnutls_session_pack.c
index b7a5f8b3b6..d3088fb349 100644
--- a/lib/gnutls_session_pack.c
+++ b/lib/gnutls_session_pack.c
@@ -822,7 +822,6 @@ unpack_security_parameters (gnutls_session_t session, gnutls_buffer_st * ps)
timestamp = gnutls_time (0);
-
BUFFER_POP_NUM (ps, session->internals.resumed_security_parameters.entity);
BUFFER_POP_NUM (ps,
session->internals.resumed_security_parameters.kx_algorithm);
@@ -863,6 +862,12 @@ unpack_security_parameters (gnutls_session_t session, gnutls_buffer_st * ps)
BUFFER_POP_NUM (ps,
session->internals.resumed_security_parameters.ecc_curve);
+ if (session->internals.resumed_security_parameters.max_record_recv_size == 0 ||
+ session->internals.resumed_security_parameters.max_record_send_size == 0)
+ {
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ }
+
if (timestamp - session->internals.resumed_security_parameters.timestamp >
session->internals.expire_time
|| session->internals.resumed_security_parameters.timestamp > timestamp)