From: Jonathan Bastien-Filiatrault Date: Thu, 10 Dec 2009 03:03:04 +0000 (-0500) Subject: Adapt session ticket support to mbuffer API. X-Git-Tag: gnutls_2_11_3~311 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=af81d19ac9a439a95464badce982e670fda3d217;p=thirdparty%2Fgnutls.git Adapt session ticket support to mbuffer API. --- diff --git a/lib/ext_session_ticket.c b/lib/ext_session_ticket.c index 734476e34e..b3646b3e39 100644 --- a/lib/ext_session_ticket.c +++ b/lib/ext_session_ticket.c @@ -453,6 +453,7 @@ gnutls_session_ticket_enable_server (gnutls_session_t session, int _gnutls_send_new_session_ticket (gnutls_session_t session, int again) { + mbuffer_st *bufel = NULL; uint8_t *data = NULL, *p; int data_size = 0; int ret; @@ -522,14 +523,15 @@ _gnutls_send_new_session_ticket (gnutls_session_t session, int again) ticket_len = KEY_NAME_SIZE + IV_SIZE + 2 + ticket.encrypted_state_len + MAC_SIZE; - data = gnutls_malloc (4 + 2 + ticket_len); - if (!data) + bufel = _gnutls_handshake_alloc (4 + 2 + ticket_len); + if (!bufel) { gnutls_assert (); gnutls_free (ticket.encrypted_state); return GNUTLS_E_MEMORY_ERROR; } + data = bufel->msg.data + bufel->mark; p = data; /* FIXME: ticket lifetime is fixed to 10 days, which should be customizable. */ @@ -556,11 +558,11 @@ _gnutls_send_new_session_ticket (gnutls_session_t session, int again) p += MAC_SIZE; data_size = p - data; + data = _gnutls_handshake_realloc(data, data_size); } - ret = _gnutls_send_handshake (session, data_size ? data : NULL, data_size, + ret = _gnutls_send_handshake (session, data_size ? bufel : NULL, GNUTLS_HANDSHAKE_NEW_SESSION_TICKET); - gnutls_free (data); return ret; }