summaryrefslogtreecommitdiff
path: root/lib/state.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/state.c')
-rw-r--r--lib/state.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/state.c b/lib/state.c
index 1551fa9794..3a4d80ffc3 100644
--- a/lib/state.c
+++ b/lib/state.c
@@ -242,7 +242,6 @@ void _gnutls_handshake_internal_state_clear(gnutls_session_t session)
int gnutls_init(gnutls_session_t * session, unsigned int flags)
{
int ret;
- record_parameters_st *epoch;
FAIL_IF_LIB_ERROR;
@@ -250,16 +249,12 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
if (*session == NULL)
return GNUTLS_E_MEMORY_ERROR;
- ret = _gnutls_epoch_alloc(*session, 0, &epoch);
+ ret = _gnutls_epoch_new(*session, 1, NULL);
if (ret < 0) {
- gnutls_assert();
- return GNUTLS_E_MEMORY_ERROR;
+ gnutls_free(*session);
+ return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
-
- /* Set all NULL algos on epoch 0 */
- _gnutls_epoch_set_null_algos(*session, epoch);
-
- (*session)->security_parameters.epoch_next = 1;
+ _gnutls_epoch_bump(*session);
(*session)->security_parameters.entity =
(flags & GNUTLS_SERVER ? GNUTLS_SERVER : GNUTLS_CLIENT);