Message ID | 20210810134557.2444863-3-stefanb@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ima-evm-utils: Add support for signing with pkcs11 URIs | expand |
On Tue, 2021-08-10 at 09:45 -0400, Stefan Berger wrote: > From: Stefan Berger <stefanb@linux.ibm.com> > > Fix the following issue when passing a not available engine: First describe the problem and then include details and/or an example. For example, "Handle failure to initialize the openssl engine. For example, " > > $ ./src/evmctl --engine foo > engine foo isn't available > 140322992015168:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:118:filename(/usr/lib64/engines-1.1/foo.so): /usr/lib64/engines-1.1/foo.so: cannot open shared object file: No such file or directory > 140322992015168:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:162: > 140322992015168:error:260B6084:engine routines:dynamic_load:dso not found:crypto/engine/eng_dyn.c:414: > 140322992015168:error:2606A074:engine routines:ENGINE_by_id:no such engine:crypto/engine/eng_list.c:334:id=foo > Segmentation fault (core dumped) > > Also, jump to the exit when the setup of the engine failed. Patch descriptions should not be explaining the details of the code, but providing the motivation for the patch. Please remove this line. > > Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Thanks, Mimi > --- > src/evmctl.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/src/evmctl.c b/src/evmctl.c > index 58f8e66..ed0ece3 100644 > --- a/src/evmctl.c > +++ b/src/evmctl.c > @@ -2765,7 +2765,10 @@ int main(int argc, char *argv[]) > ENGINE_free(eng); > eng = NULL; > } > - ENGINE_set_default(eng, ENGINE_METHOD_ALL); > + if (eng) > + ENGINE_set_default(eng, ENGINE_METHOD_ALL); > + else > + goto error; > break; > case 140: /* --xattr-user */ > xattr_ima = "user.ima"; > @@ -2839,6 +2842,7 @@ int main(int argc, char *argv[]) > err = 125; > } > > +error: > if (eng) { > ENGINE_finish(eng); > ENGINE_free(eng);
diff --git a/src/evmctl.c b/src/evmctl.c index 58f8e66..ed0ece3 100644 --- a/src/evmctl.c +++ b/src/evmctl.c @@ -2765,7 +2765,10 @@ int main(int argc, char *argv[]) ENGINE_free(eng); eng = NULL; } - ENGINE_set_default(eng, ENGINE_METHOD_ALL); + if (eng) + ENGINE_set_default(eng, ENGINE_METHOD_ALL); + else + goto error; break; case 140: /* --xattr-user */ xattr_ima = "user.ima"; @@ -2839,6 +2842,7 @@ int main(int argc, char *argv[]) err = 125; } +error: if (eng) { ENGINE_finish(eng); ENGINE_free(eng);