summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2020-05-25 04:47:00 +0000
committerDaiki Ueno <ueno@gnu.org>2020-05-25 04:47:00 +0000
commit43349cda523f90bc97e43dd86ca1171262a0086c (patch)
tree86ebe6218f77cd5cd59aaeed82c418d69e88eb3d
parent330a44728e14ddd3358ace6481ebd9bc687355ca (diff)
parent1d4615aa650dad1c01452d46396c0307304b0245 (diff)
downloadgnutls-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
-rw-r--r--lib/ext/session_ticket.c18
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;