Allocate extra space when NETSCAPE_HANG_BUG defined.
authorDavid Ramos <daramos@stanford.edu>
Sun, 1 Jun 2014 13:23:51 +0000 (14:23 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Sun, 1 Jun 2014 13:27:22 +0000 (14:27 +0100)
Make sure there is an extra 4 bytes for server done message when
NETSCAPE_HANG_BUG is defined.

PR#3361

ssl/s3_srvr.c

index 63ede4947958210c8d7d98367276f331a2fc20a4..72fd3e40d6653abe7e9a35e73dae9930937bab58 100644 (file)
@@ -2184,6 +2184,11 @@ int ssl3_send_certificate_request(SSL *s)
 #ifdef NETSCAPE_HANG_BUG
                if (!SSL_IS_DTLS(s))
                        {
 #ifdef NETSCAPE_HANG_BUG
                if (!SSL_IS_DTLS(s))
                        {
+                       if (!BUF_MEM_grow_clean(buf, s->init_num + 4))
+                               {
+                               SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST,ERR_R_BUF_LIB);
+                               goto err;
+                               }
                        p=(unsigned char *)s->init_buf->data + s->init_num;
                        /* do the header */
                        *(p++)=SSL3_MT_SERVER_DONE;
                        p=(unsigned char *)s->init_buf->data + s->init_num;
                        /* do the header */
                        *(p++)=SSL3_MT_SERVER_DONE;