From 1de1e3c8ce27b55c02c4981a2664e723940d3675 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 13 Sep 2021 18:18:08 -0400 Subject: [PATCH] evmctl: Define and use an ENGINE field in libimaevm_params Extend the global libimaevm_params structure with an ENGINE field 'eng' and use it in place of the local ENGINE variable in main(). Signed-off-by: Stefan Berger Signed-off-by: Mimi Zohar --- src/evmctl.c | 11 +++++------ src/imaevm.h | 2 ++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/evmctl.c b/src/evmctl.c index 0e3308f..fbe1d0a 100644 --- a/src/evmctl.c +++ b/src/evmctl.c @@ -2660,7 +2660,6 @@ static ENGINE *setup_engine(const char *engine_id) int main(int argc, char *argv[]) { int err = 0, c, lind; - ENGINE *eng = NULL; unsigned long keyid; char *eptr; @@ -2781,8 +2780,8 @@ int main(int argc, char *argv[]) verify_list_sig = 1; break; case 139: /* --engine e */ - eng = setup_engine(optarg); - if (!eng) + imaevm_params.eng = setup_engine(optarg); + if (!imaevm_params.eng) goto error; break; case 140: /* --xattr-user */ @@ -2858,9 +2857,9 @@ int main(int argc, char *argv[]) } error: - if (eng) { - ENGINE_finish(eng); - ENGINE_free(eng); + if (imaevm_params.eng) { + ENGINE_finish(imaevm_params.eng); + ENGINE_free(imaevm_params.eng); #if OPENSSL_API_COMPAT < 0x10100000L ENGINE_cleanup(); #endif diff --git a/src/imaevm.h b/src/imaevm.h index 491f136..8792aa2 100644 --- a/src/imaevm.h +++ b/src/imaevm.h @@ -48,6 +48,7 @@ #include #include #include +#include #ifdef USE_FPRINTF #define do_log(level, fmt, args...) \ @@ -197,6 +198,7 @@ struct libimaevm_params { const char *keyfile; const char *keypass; uint32_t keyid; /* keyid overriding value, unless 0. (Host order.) */ + ENGINE *eng; }; struct RSA_ASN1_template {