summaryrefslogtreecommitdiff
path: root/lib/gnutls_record.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-03-12 11:54:01 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-03-12 11:54:01 +0100
commit1712d9683acf660e4c1b791d8bebbe86dd5e6905 (patch)
treea2525d6cf93eabd13f35b293cbe77636273a9356 /lib/gnutls_record.c
parenta1c39af3a757150cf38d3b95fe69a437ca685f91 (diff)
downloadgnutls-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.c12
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;