diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c index 140b1f1d879d6f2f66c9a71d5c4cd2ade818eeed..f13c0ada939406e843b79a377848aa0de0373148 100644 --- a/ssl/t1_lib.c +++ b/ssl/t1_lib.c @@ -1315,6 +1315,11 @@ TICKET_RETURN tls_decrypt_ticket(SSL *s, const unsigned char *etick, sess = d2i_SSL_SESSION(NULL, &p, slen); OPENSSL_free(sdec); if (sess) { + /* Some additional consistency checks */ + if (p != sdec + slen || sess->session_id_length != 0) { + SSL_SESSION_free(sess); + return 2; + } /* * The session ID, if non-empty, is used by some clients to detect * that the ticket has been accepted. So we copy it to the session