diff -aur a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c --- a/lib/gnutls_handshake.c 2012-01-06 20:06:23.000000000 +0100 +++ b/lib/gnutls_handshake.c 2014-06-16 23:06:37.599605545 +0200 @@ -1797,7 +1797,7 @@ DECR_LEN (len, 1); session_id_len = data[pos++]; - if (len < session_id_len) + if (len < session_id_len || session_id_len > TLS_MAX_SESSION_ID_SIZE) { gnutls_assert (); return GNUTLS_E_UNSUPPORTED_VERSION_PACKET;