]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - providers/common/kdfs/sskdf.c
Fix memleaks in KDF implementations
[thirdparty/openssl.git] / providers / common / kdfs / sskdf.c
index 61e4607bee88512c5dd4ab15adb24c55fe9b0c15..b8a41fbbaafaa95c65b2db9952b78df272d3e957 100644 (file)
@@ -315,10 +315,11 @@ static void sskdf_reset(void *vctx)
 {
     KDF_SSKDF *ctx = (KDF_SSKDF *)vctx;
 
+    EVP_MD_meth_free(ctx->md);
+    EVP_MAC_free(ctx->mac);
     OPENSSL_clear_free(ctx->secret, ctx->secret_len);
     OPENSSL_clear_free(ctx->info, ctx->info_len);
     OPENSSL_clear_free(ctx->salt, ctx->salt_len);
-    EVP_MAC_free(ctx->mac);
     memset(ctx, 0, sizeof(*ctx));
 }
 
@@ -327,8 +328,6 @@ static void sskdf_free(void *vctx)
     KDF_SSKDF *ctx = (KDF_SSKDF *)vctx;
 
     sskdf_reset(ctx);
-    EVP_MD_meth_free(ctx->md);
-    EVP_MAC_free(ctx->mac);
     OPENSSL_free(ctx);
 }