From: Nikos Mavrogiannopoulos Date: Mon, 2 Jun 2014 13:01:45 +0000 (+0200) Subject: handshake: Prevent memory leak on invalid SSLv2 hello length. X-Git-Tag: gnutls_3_3_5~61 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d2e5ea09e9fed7bd9feff9831cb29fd84d0ad56d;p=thirdparty%2Fgnutls.git handshake: Prevent memory leak on invalid SSLv2 hello length. --- diff --git a/lib/gnutls_v2_compat.c b/lib/gnutls_v2_compat.c index e68cce3d05..4d5024a599 100644 --- a/lib/gnutls_v2_compat.c +++ b/lib/gnutls_v2_compat.c @@ -54,15 +54,15 @@ _gnutls_handshake_select_v2_suite(gnutls_session_t session, _gnutls_handshake_log ("HSK[%p]: Parsing a version 2.0 client hello.\n", session); - _data = gnutls_malloc(datalen); - if (_data == NULL) { + if (datalen % 3 != 0) { gnutls_assert(); - return GNUTLS_E_MEMORY_ERROR; + return GNUTLS_E_UNEXPECTED_PACKET_LENGTH; } - if (datalen % 3 != 0) { + _data = gnutls_malloc(datalen); + if (_data == NULL) { gnutls_assert(); - return GNUTLS_E_UNEXPECTED_PACKET_LENGTH; + return GNUTLS_E_MEMORY_ERROR; } i = _datalen = 0;