Explicit thread cleanup in OpenSSL 1.1.1 possible?
Stephan Mühlstrasser
stm at pdflib.com
Fri Mar 27 13:13:54 UTC 2020
Hi,
with OpenSSL 1.1.1 it is possible to turn off the automatic cleanup with
an atexit() handler by passing the flag OPENSSL_INIT_NO_ATEXIT to
OPENSSL_init_crypto().
Is it possible to configure this also at the thread level, so that no
automatic thread cleanup occurs, with the option to do an explicit
per-thread cleanup? I looked at documentation and source code of OpenSSL
1.1.1 and this seems not to be possible, but I wanted to ask nevertheless.
Background: We are embedding OpenSSL in a Java JNI library, and one
particular JVM (IBM J9 on z/OS) loads our Java class and the JNI library
in a dedicated thread. At the end of the program the JVM then unloads
the the Java class and the JNI library before the thread terminates, and
when the OpenSSL thread cleanup functions are called the JVM crashes
because the shared library is gone from the address space. This happens
because the pinning of the OpenSSL shared library does not work on z/OS.
--
Stephan
More information about the openssl-users
mailing list