summaryrefslogtreecommitdiffstats
path: root/ssl/statem/statem_srvr.c
diff options
context:
space:
mode:
authorBenjamin Kaduk <bkaduk@akamai.com>2017-01-24 10:50:21 -0600
committerMatt Caswell <matt@openssl.org>2017-01-24 17:05:45 +0000
commit722d42e1ea710ba036563a68dc7c4e987bf4991b (patch)
tree753f87472e499d5041d22d9147376816aeb31bf3 /ssl/statem/statem_srvr.c
parentc088325b42cee1236f7b4996dd71f93ecc95bd5d (diff)
Do not overallocate for tmp.ciphers_raw
Well, not as much, at least. Commit 07afdf3c3ac97af4f2b4eec22a97f7230f8227e0 changed things so that for SSLv2 format ClientHellos we store the cipher list in the TLS format, i.e., with two bytes per cipher, to be consistent with historical behavior. However, the space allocated for the array still performed the computation with three bytes per cipher, a needless over-allocation (though a relatively small one, all things considered). Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2281) (cherry picked from commit f1429b85c5821e55224e5878da9d0fa420a41f71)
Diffstat (limited to 'ssl/statem/statem_srvr.c')
-rw-r--r--ssl/statem/statem_srvr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c
index d367c21a0e..d36d194b0a 100644
--- a/ssl/statem/statem_srvr.c
+++ b/ssl/statem/statem_srvr.c
@@ -3276,7 +3276,8 @@ STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s,
* slightly over allocate because we won't store those. But that isn't a
* problem.
*/
- raw = s->s3->tmp.ciphers_raw = OPENSSL_malloc(numciphers * n);
+ raw = OPENSSL_malloc(numciphers * TLS_CIPHER_LEN);
+ s->s3->tmp.ciphers_raw = raw;
if (raw == NULL) {
*al = SSL_AD_INTERNAL_ERROR;
goto err;