From: Bernd Edlinger Date: Mon, 12 Jun 2017 17:30:10 +0000 (+0200) Subject: Fix a memleak in tls13_generate_secret. X-Git-Tag: OpenSSL_1_1_1-pre1~1327 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=71d8c138cf0a72663cd401d753564eecd8c23289 Fix a memleak in tls13_generate_secret. Reviewed-by: Matt Caswell Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/3660) --- diff --git a/ssl/tls13_enc.c b/ssl/tls13_enc.c index 2763475382..bc1995e21f 100644 --- a/ssl/tls13_enc.c +++ b/ssl/tls13_enc.c @@ -148,6 +148,7 @@ int tls13_generate_secret(SSL *s, const EVP_MD *md, || EVP_DigestInit_ex(mctx, md, NULL) <= 0 || EVP_DigestFinal_ex(mctx, hash, NULL) <= 0) { EVP_MD_CTX_free(mctx); + EVP_PKEY_CTX_free(pctx); return 0; } EVP_MD_CTX_free(mctx); @@ -156,8 +157,10 @@ int tls13_generate_secret(SSL *s, const EVP_MD *md, if (!tls13_hkdf_expand(s, md, prevsecret, (unsigned char *)derived_secret_label, sizeof(derived_secret_label) - 1, hash, - preextractsec, mdlen)) + preextractsec, mdlen)) { + EVP_PKEY_CTX_free(pctx); return 0; + } prevsecret = preextractsec; prevsecretlen = mdlen;