summaryrefslogtreecommitdiff
path: root/openssl/ssl/s23_clnt.c
diff options
context:
space:
mode:
Diffstat (limited to 'openssl/ssl/s23_clnt.c')
-rw-r--r--openssl/ssl/s23_clnt.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/openssl/ssl/s23_clnt.c b/openssl/ssl/s23_clnt.c
index 08ee86d..750d208 100644
--- a/openssl/ssl/s23_clnt.c
+++ b/openssl/ssl/s23_clnt.c
@@ -467,9 +467,9 @@ static int ssl23_client_hello(SSL *s)
/* create Client Hello in SSL 3.0/TLS 1.0 format */
/* do the record header (5 bytes) and handshake message
- * header (4 bytes) last. Note: the code to add the
- * padding extension in t1_lib.c depends on the size of
- * this prefix. */
+ * header (4 bytes) last. Note: the final argument to
+ * ssl_add_clienthello_tlsext below depends on the size
+ * of this prefix. */
d = p = &(buf[9]);
*(p++) = version_major;
@@ -526,7 +526,10 @@ static int ssl23_client_hello(SSL *s)
SSLerr(SSL_F_SSL23_CLIENT_HELLO,SSL_R_CLIENTHELLO_TLSEXT);
return -1;
}
- if ((p = ssl_add_clienthello_tlsext(s, p, buf+SSL3_RT_MAX_PLAIN_LENGTH)) == NULL)
+ /* The buffer includes the 5 byte record header, so
+ * subtract it to compute hlen for
+ * ssl_add_clienthello_tlsext. */
+ if ((p = ssl_add_clienthello_tlsext(s, p, buf+SSL3_RT_MAX_PLAIN_LENGTH, p-buf-5)) == NULL)
{
SSLerr(SSL_F_SSL23_CLIENT_HELLO,ERR_R_INTERNAL_ERROR);
return -1;