summaryrefslogtreecommitdiff
path: root/src/lib/libssl/s3_srvr.c
diff options
context:
space:
mode:
authorjsing <>2015-09-12 15:03:39 +0000
committerjsing <>2015-09-12 15:03:39 +0000
commit55878a118f9914f78e196c906ef6d76b6f2e269c (patch)
treef43b2c4f0a83343ac09872bb9dd4075c5d209246 /src/lib/libssl/s3_srvr.c
parentbb3dc274c59720dc1e231a536edf176cf9687b2e (diff)
downloadopenbsd-55878a118f9914f78e196c906ef6d76b6f2e269c.tar.gz
openbsd-55878a118f9914f78e196c906ef6d76b6f2e269c.tar.bz2
openbsd-55878a118f9914f78e196c906ef6d76b6f2e269c.zip
Move handshake message header length determination into a separate
ssl3_handshake_msg_hdr_len() function. Use this to correct several places that have magic numbers with header lengths hardcoded as '4'. ok beck@
Diffstat (limited to 'src/lib/libssl/s3_srvr.c')
-rw-r--r--src/lib/libssl/s3_srvr.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c
index e9496f9b9d..dbcbc9b709 100644
--- a/src/lib/libssl/s3_srvr.c
+++ b/src/lib/libssl/s3_srvr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_srvr.c,v 1.119 2015/09/12 13:03:06 jsing Exp $ */ 1/* $OpenBSD: s3_srvr.c,v 1.120 2015/09/12 15:03:39 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1398,7 +1398,8 @@ ssl3_send_server_key_exchange(SSL *s)
1398 kn = 0; 1398 kn = 0;
1399 } 1399 }
1400 1400
1401 if (!BUF_MEM_grow_clean(buf, n + 4 + kn)) { 1401 if (!BUF_MEM_grow_clean(buf, ssl3_handshake_msg_hdr_len(s) +
1402 n + kn)) {
1402 SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE, 1403 SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,
1403 ERR_LIB_BUF); 1404 ERR_LIB_BUF);
1404 goto err; 1405 goto err;
@@ -1570,7 +1571,9 @@ ssl3_send_certificate_request(SSL *s)
1570 for (i = 0; i < sk_X509_NAME_num(sk); i++) { 1571 for (i = 0; i < sk_X509_NAME_num(sk); i++) {
1571 name = sk_X509_NAME_value(sk, i); 1572 name = sk_X509_NAME_value(sk, i);
1572 j = i2d_X509_NAME(name, NULL); 1573 j = i2d_X509_NAME(name, NULL);
1573 if (!BUF_MEM_grow_clean(buf, 4 + n + j + 2)) { 1574 if (!BUF_MEM_grow_clean(buf,
1575 ssl3_handshake_msg_hdr_len(s) + n + j
1576 + 2)) {
1574 SSLerr( 1577 SSLerr(
1575 SSL_F_SSL3_SEND_CERTIFICATE_REQUEST, 1578 SSL_F_SSL3_SEND_CERTIFICATE_REQUEST,
1576 ERR_R_BUF_LIB); 1579 ERR_R_BUF_LIB);
@@ -2523,8 +2526,8 @@ ssl3_send_newsession_ticket(SSL *s)
2523 * session_length + max_enc_block_size (max encrypted session 2526 * session_length + max_enc_block_size (max encrypted session
2524 * length) + max_md_size (HMAC). 2527 * length) + max_md_size (HMAC).
2525 */ 2528 */
2526 if (!BUF_MEM_grow(s->init_buf, 2529 if (!BUF_MEM_grow(s->init_buf, ssl3_handshake_msg_hdr_len(s) +
2527 26 + EVP_MAX_IV_LENGTH + EVP_MAX_BLOCK_LENGTH + 2530 22 + EVP_MAX_IV_LENGTH + EVP_MAX_BLOCK_LENGTH +
2528 EVP_MAX_MD_SIZE + slen)) { 2531 EVP_MAX_MD_SIZE + slen)) {
2529 free(senc); 2532 free(senc);
2530 return (-1); 2533 return (-1);