Allocate extra space when NETSCAPE_HANG_BUG defined.

Make sure there is an extra 4 bytes for server done message when
NETSCAPE_HANG_BUG is defined.

PR#3361

(Imported from upstream's 856a4585d6f7a856b90c93792cf1c1ed968d4a4b)
This commit is contained in:
Adam Langley 2014-06-20 12:00:00 -07:00
parent caddf1c4de
commit ce1cfe169a

View File

@ -2088,6 +2088,11 @@ int ssl3_send_certificate_request(SSL *s)
#ifdef NETSCAPE_HANG_BUG #ifdef NETSCAPE_HANG_BUG
if (!SSL_IS_DTLS(s)) if (!SSL_IS_DTLS(s))
{ {
if (!BUF_MEM_grow_clean(buf, s->init_num + 4))
{
OPENSSL_PUT_ERROR(SSL, ssl3_send_certificate_request, ERR_R_BUF_LIB);
goto err;
}
p=(unsigned char *)s->init_buf->data + s->init_num; p=(unsigned char *)s->init_buf->data + s->init_num;
/* do the header */ /* do the header */
*(p++)=SSL3_MT_SERVER_DONE; *(p++)=SSL3_MT_SERVER_DONE;