summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiod <>2014-05-18 16:10:26 +0000
committermiod <>2014-05-18 16:10:26 +0000
commit07cfa1a278f7bbdc024101f7601144c23cca9b80 (patch)
tree9113f7f80d634409d635b24c7127533982285ab5
parentbf2b14371457bc443895943008b5aa2b82e8d25b (diff)
downloadopenbsd-07cfa1a278f7bbdc024101f7601144c23cca9b80.tar.gz
openbsd-07cfa1a278f7bbdc024101f7601144c23cca9b80.tar.bz2
openbsd-07cfa1a278f7bbdc024101f7601144c23cca9b80.zip
In ssl3_send_certificate_request(), when adding the extra payload if
NETSCAPE_HANG_BUG is defined, make sure we BUF_MEM_grow() the buffer to accomodate for the payload size. Issue reported by David Ramos; ok beck@
-rw-r--r--src/lib/libssl/s3_srvr.c7
-rw-r--r--src/lib/libssl/src/ssl/s3_srvr.c7
2 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c
index 081aebf1f5..decf35d50f 100644
--- a/src/lib/libssl/s3_srvr.c
+++ b/src/lib/libssl/s3_srvr.c
@@ -1988,7 +1988,12 @@ ssl3_send_certificate_request(SSL *s)
1988 s->init_num = n + 4; 1988 s->init_num = n + 4;
1989 s->init_off = 0; 1989 s->init_off = 0;
1990#ifdef NETSCAPE_HANG_BUG 1990#ifdef NETSCAPE_HANG_BUG
1991 p = (unsigned char *)s->init_buf->data + s->init_num; 1991 if (!BUF_MEM_grow(buf, s->init_num + 4)) {
1992 SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST,
1993 ERR_R_BUF_LIB);
1994 goto err;
1995 }
1996 p = (unsigned char *)buf->data + s->init_num;
1992 1997
1993 /* do the header */ 1998 /* do the header */
1994 *(p++) = SSL3_MT_SERVER_DONE; 1999 *(p++) = SSL3_MT_SERVER_DONE;
diff --git a/src/lib/libssl/src/ssl/s3_srvr.c b/src/lib/libssl/src/ssl/s3_srvr.c
index 081aebf1f5..decf35d50f 100644
--- a/src/lib/libssl/src/ssl/s3_srvr.c
+++ b/src/lib/libssl/src/ssl/s3_srvr.c
@@ -1988,7 +1988,12 @@ ssl3_send_certificate_request(SSL *s)
1988 s->init_num = n + 4; 1988 s->init_num = n + 4;
1989 s->init_off = 0; 1989 s->init_off = 0;
1990#ifdef NETSCAPE_HANG_BUG 1990#ifdef NETSCAPE_HANG_BUG
1991 p = (unsigned char *)s->init_buf->data + s->init_num; 1991 if (!BUF_MEM_grow(buf, s->init_num + 4)) {
1992 SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST,
1993 ERR_R_BUF_LIB);
1994 goto err;
1995 }
1996 p = (unsigned char *)buf->data + s->init_num;
1992 1997
1993 /* do the header */ 1998 /* do the header */
1994 *(p++) = SSL3_MT_SERVER_DONE; 1999 *(p++) = SSL3_MT_SERVER_DONE;