cb4c3c9
From b71dcdeb2490f4c64a339bada58b7a5f95a53753 Mon Sep 17 00:00:00 2001
cb4c3c9
From: Christos Zoulas <christos@zoulas.com>
cb4c3c9
Date: Sat, 23 Jun 2018 16:02:14 -0400
cb4c3c9
Subject: [PATCH] Adjust for OpenSSL v1.1
cb4c3c9
MIME-Version: 1.0
cb4c3c9
Content-Type: text/plain; charset=UTF-8
cb4c3c9
Content-Transfer-Encoding: 8bit
cb4c3c9
cb4c3c9
Signed-off-by: Petr Písař <ppisar@redhat.com>
cb4c3c9
---
cb4c3c9
 lib/if_spmd.c | 25 +++++++++++++------------
cb4c3c9
 1 file changed, 13 insertions(+), 12 deletions(-)
cb4c3c9
cb4c3c9
diff --git a/lib/if_spmd.c b/lib/if_spmd.c
cb4c3c9
index 3666757..4f101e4 100644
cb4c3c9
--- a/lib/if_spmd.c
cb4c3c9
+++ b/lib/if_spmd.c
cb4c3c9
@@ -1100,7 +1100,7 @@ int
cb4c3c9
 spmd_if_login_response(struct spmd_cid *pci)
cb4c3c9
 {
cb4c3c9
 	unsigned char md[EVP_MAX_MD_SIZE];
cb4c3c9
-	EVP_MD_CTX ctx;
cb4c3c9
+	EVP_MD_CTX *ctx;
cb4c3c9
 	size_t hash_len;
cb4c3c9
 	unsigned int md_len;
cb4c3c9
 	int error, used, i;
cb4c3c9
@@ -1108,28 +1108,33 @@ spmd_if_login_response(struct spmd_cid *pci)
cb4c3c9
 
cb4c3c9
 	error = -1;
cb4c3c9
 
cb4c3c9
-	EVP_MD_CTX_init(&ctx;;
cb4c3c9
-	if (!EVP_DigestInit_ex(&ctx, SPMD_DIGEST_ALG, SPMD_EVP_ENGINE)) {
cb4c3c9
+	ctx = EVP_MD_CTX_new();
cb4c3c9
+	if (ctx == NULL) {
cb4c3c9
+		plog(PLOG_INTERR, PLOGLOC, NULL,
cb4c3c9
+		    "failed to allocate Message Digest context\n");
cb4c3c9
+		goto fail_early;
cb4c3c9
+	}
cb4c3c9
+	if (!EVP_DigestInit_ex(ctx, SPMD_DIGEST_ALG, SPMD_EVP_ENGINE)) {
cb4c3c9
 		plog(PLOG_INTERR, PLOGLOC, NULL,
cb4c3c9
 		    "failed to initilize Message Digest function\n");
cb4c3c9
 		goto fail_early;
cb4c3c9
 	}
cb4c3c9
-	if (!EVP_DigestUpdate(&ctx, pci->challenge, strlen(pci->challenge))) {
cb4c3c9
+	if (!EVP_DigestUpdate(ctx, pci->challenge, strlen(pci->challenge))) {
cb4c3c9
 		plog(PLOG_INTERR, PLOGLOC, NULL,
cb4c3c9
 		    "failed to hash Challenge\n");
cb4c3c9
 		goto fail;
cb4c3c9
 	}
cb4c3c9
-	if (!EVP_DigestUpdate(&ctx, pci->password, strlen(pci->password))) {
cb4c3c9
+	if (!EVP_DigestUpdate(ctx, pci->password, strlen(pci->password))) {
cb4c3c9
 		plog(PLOG_INTERR, PLOGLOC, NULL,
cb4c3c9
 		    "failed to hash Password\n");
cb4c3c9
 		goto fail;
cb4c3c9
 	}
cb4c3c9
-	if (sizeof(md) < EVP_MD_CTX_size(&ctx)) {
cb4c3c9
+	if (sizeof(md) < EVP_MD_CTX_size(ctx)) {
cb4c3c9
 		plog(PLOG_INTERR, PLOGLOC, NULL,
cb4c3c9
 		    "Message Digest buffer is not enough\n");
cb4c3c9
 		goto fail;
cb4c3c9
 	}
cb4c3c9
-	if (!EVP_DigestFinal_ex(&ctx, md, &md_len)) {
cb4c3c9
+	if (!EVP_DigestFinal_ex(ctx, md, &md_len)) {
cb4c3c9
 		plog(PLOG_INTERR, PLOGLOC, NULL,
cb4c3c9
 		    "failed to get Message Digest value\n");
cb4c3c9
 		goto fail;
cb4c3c9
@@ -1154,11 +1159,7 @@ spmd_if_login_response(struct spmd_cid *pci)
cb4c3c9
 
cb4c3c9
 	error = 0;
cb4c3c9
 fail:
cb4c3c9
-	if (!EVP_MD_CTX_cleanup(&ctx)) {
cb4c3c9
-		plog(PLOG_INTERR, PLOGLOC, NULL,
cb4c3c9
-		    "failed to cleanup Message Digest context\n");
cb4c3c9
-		error = -1;		/* error again */
cb4c3c9
-	}
cb4c3c9
+	EVP_MD_CTX_free(ctx);
cb4c3c9
 fail_early:
cb4c3c9
 	return error;
cb4c3c9
 }
cb4c3c9
-- 
cb4c3c9
2.20.1
cb4c3c9