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