diff options
author | Daiki Ueno <ueno@gnu.org> | 2020-05-25 04:47:00 +0000 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2020-05-25 04:47:00 +0000 |
commit | 43349cda523f90bc97e43dd86ca1171262a0086c (patch) | |
tree | 86ebe6218f77cd5cd59aaeed82c418d69e88eb3d /lib/ext/session_ticket.c | |
parent | 330a44728e14ddd3358ace6481ebd9bc687355ca (diff) | |
parent | 1d4615aa650dad1c01452d46396c0307304b0245 (diff) | |
download | gnutls-43349cda523f90bc97e43dd86ca1171262a0086c.tar.gz |
Merge branch 'rrivers2-master-patch-89518' into 'master'
Update session_ticket.c to add support for zero length session tickets returned from the server
See merge request gnutls/gnutls!1260
Diffstat (limited to 'lib/ext/session_ticket.c')
-rw-r--r-- | lib/ext/session_ticket.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/ext/session_ticket.c b/lib/ext/session_ticket.c index c854d9c2a9..8d4595821a 100644 --- a/lib/ext/session_ticket.c +++ b/lib/ext/session_ticket.c @@ -787,15 +787,17 @@ int _gnutls_recv_new_session_ticket(gnutls_session_t session) ret = GNUTLS_E_MEMORY_ERROR; goto error; } - priv->session_ticket = - gnutls_realloc_fast(priv->session_ticket, ticket_len); - if (!priv->session_ticket) { - gnutls_free(priv); - gnutls_assert(); - ret = GNUTLS_E_MEMORY_ERROR; - goto error; + if (ticket_len > 0) { + priv->session_ticket = + gnutls_realloc_fast(priv->session_ticket, ticket_len); + if (!priv->session_ticket) { + gnutls_free(priv); + gnutls_assert(); + ret = GNUTLS_E_MEMORY_ERROR; + goto error; + } + memcpy(priv->session_ticket, p, ticket_len); } - memcpy(priv->session_ticket, p, ticket_len); priv->session_ticket_len = ticket_len; epriv = priv; |