]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Ensure our buffer allocation allows for the Explicit IV
authorMatt Caswell <matt@openssl.org>
Thu, 19 Jan 2023 11:59:44 +0000 (11:59 +0000)
committerPauli <pauli@openssl.org>
Tue, 24 Jan 2023 00:20:43 +0000 (11:20 +1100)
Some ciphers/protocol versions have an explicit IV. We need to make sure we
have sufficient room for it in the underlying buffer.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20085)

ssl/record/methods/tls_common.c

index 8b569f962a9f1b77f080a0fdd7cf5cb7201031d6..e34a2792d319b1a0e75ebb10b7d19df22e8b8314 100644 (file)
@@ -158,11 +158,15 @@ int tls_setup_write_buffer(OSSL_RECORD_LAYER *rl, size_t numwpipes,
 #endif
 
         defltlen = rl->max_frag_len + SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD
-                   + headerlen + align;
+                   + headerlen + align + rl->eivlen;
 #ifndef OPENSSL_NO_COMP
         if (tls_allow_compression(rl))
             defltlen += SSL3_RT_MAX_COMPRESSED_OVERHEAD;
 #endif
+        /*
+         * We don't need to add eivlen here since empty fragments only occur
+         * when we don't have an explicit IV
+         */
         if (!(rl->options & SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS))
             defltlen += headerlen + align + SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD;
     }