From 8a987af244ce570f58770da48ea8ef6fb78a761d Mon Sep 17 00:00:00 2001 From: orignal Date: Tue, 11 Dec 2018 15:14:51 -0500 Subject: [PATCH] initialize m_Pkey --- libi2pd/Crypto.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libi2pd/Crypto.cpp b/libi2pd/Crypto.cpp index 51a78948..7caa3dca 100644 --- a/libi2pd/Crypto.cpp +++ b/libi2pd/Crypto.cpp @@ -283,6 +283,7 @@ namespace crypto { #if OPENSSL_X25519 m_Ctx = EVP_PKEY_CTX_new_id (NID_X25519, NULL); + m_Pkey = nullptr; #else m_Ctx = BN_CTX_new (); #endif @@ -305,8 +306,7 @@ namespace crypto { #if OPENSSL_X25519 EVP_PKEY_CTX_free (m_Ctx); - if (m_Pkey) - EVP_PKEY_free (m_Pkey); + if (m_Pkey) EVP_PKEY_free (m_Pkey); #else BN_CTX_free (m_Ctx); #endif @@ -315,7 +315,11 @@ namespace crypto void X25519Keys::GenerateKeys () { #if OPENSSL_X25519 - m_Pkey = nullptr; + if (m_Pkey) + { + EVP_PKEY_free (m_Pkey); + m_Pkey = nullptr; + } EVP_PKEY_keygen_init (m_Ctx); EVP_PKEY_keygen (m_Ctx, &m_Pkey); EVP_PKEY_CTX_free (m_Ctx);