diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c index 0573af121b..e2d0836b5a 100644 --- a/ssl/statem/statem_srvr.c +++ b/ssl/statem/statem_srvr.c @@ -2240,8 +2240,8 @@ int tls_construct_server_key_exchange(SSL *s, WPACKET *pkt) * up front, and then properly allocate them in the WPACKET * afterwards. */ - if (!WPACKET_sub_reserve_bytes_u16(pkt, EVP_PKEY_size(pkey), - &sigbytes1) + siglen = EVP_PKEY_size(pkey); + if (!WPACKET_sub_reserve_bytes_u16(pkt, siglen, &sigbytes1) || EVP_DigestSignInit(md_ctx, &pctx, md, NULL, pkey) <= 0) { SSLerr(SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR);