From: Nikos Mavrogiannopoulos Date: Tue, 26 Feb 2013 22:38:14 +0000 (+0100) Subject: Small fixes. X-Git-Tag: gnutls_3_1_9~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=100bc501a4e850eb9ba21bb5088b2a582e422c80;p=thirdparty%2Fgnutls.git Small fixes. --- 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)