diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-03-12 11:54:01 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-03-12 11:54:01 +0100 |
commit | 1712d9683acf660e4c1b791d8bebbe86dd5e6905 (patch) | |
tree | a2525d6cf93eabd13f35b293cbe77636273a9356 /lib/gnutls_record.c | |
parent | a1c39af3a757150cf38d3b95fe69a437ca685f91 (diff) | |
download | gnutls-1712d9683acf660e4c1b791d8bebbe86dd5e6905.tar.gz |
do not set default record version (i.e. SSL 3.0) during a re-handshake.
Diffstat (limited to 'lib/gnutls_record.c')
-rw-r--r-- | lib/gnutls_record.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/gnutls_record.c b/lib/gnutls_record.c index 4c0278fe97..e7a70362b9 100644 --- a/lib/gnutls_record.c +++ b/lib/gnutls_record.c @@ -286,7 +286,7 @@ copy_record_version (gnutls_session_t session, { gnutls_protocol_t lver; - if (htype != GNUTLS_HANDSHAKE_CLIENT_HELLO + if (session->internals.initial_negotiation_completed || htype != GNUTLS_HANDSHAKE_CLIENT_HELLO || session->internals.default_record_version[0] == 0) { lver = gnutls_protocol_get_version (session); @@ -641,7 +641,7 @@ record_add_to_buffers (gnutls_session_t session, { session_unresumable (session); session_invalidate (session); - ret = GNUTLS_E_FATAL_ALERT_RECEIVED; + ret = gnutls_assert_val(GNUTLS_E_FATAL_ALERT_RECEIVED); } goto cleanup; @@ -673,13 +673,12 @@ record_add_to_buffers (gnutls_session_t session, if (type == GNUTLS_ALERT || (htype == GNUTLS_HANDSHAKE_CLIENT_HELLO && type == GNUTLS_HANDSHAKE)) { - ret = GNUTLS_E_GOT_APPLICATION_DATA; + ret = gnutls_assert_val(GNUTLS_E_GOT_APPLICATION_DATA); goto cleanup; } else { - gnutls_assert (); - ret = GNUTLS_E_UNEXPECTED_PACKET; + ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET); goto cleanup; } @@ -1067,8 +1066,7 @@ begin: { return 0; } - gnutls_assert (); - return ret; + return gnutls_assert_val(ret); } return ret; |