diff options
author | jsing <> | 2015-09-12 15:03:39 +0000 |
---|---|---|
committer | jsing <> | 2015-09-12 15:03:39 +0000 |
commit | 55878a118f9914f78e196c906ef6d76b6f2e269c (patch) | |
tree | f43b2c4f0a83343ac09872bb9dd4075c5d209246 /src/lib/libssl/s3_srvr.c | |
parent | bb3dc274c59720dc1e231a536edf176cf9687b2e (diff) | |
download | openbsd-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.c | 13 |
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); |