]> git.ipfire.org Git - thirdparty/openssl.git/commit
Prevent crash with engine using different openssl runtime
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Mon, 22 Nov 2021 20:50:04 +0000 (21:50 +0100)
committerBernd Edlinger <bernd.edlinger@hotmail.de>
Tue, 8 Feb 2022 12:26:12 +0000 (13:26 +0100)
commit9362a1b32b7330e24d3bca230b412557caea095b
treee938881eab7536e45e57936234946e4070ceef90
parenteafd3e9d07e99583a1439bb027e4d6af43e2df27
Prevent crash with engine using different openssl runtime

This problem happens usually because an application
links libcrypto and/or libssl statically which
installs an atexit handler, but later an engine using
a shared instance of libcrypto is installed.
The problem is in simple words that both instances
of libcrypto have an atexit handler installed,
but both are unable to coordinate with each other,
which causes a crash, typically a use-after-free
in the engine's destroy function.

Work around that by preventing the engine's
libcrypto to install the atexit handler.
This may result in a small memory leak, but that
memory is still reachable.

Fixes #15898

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17112)
include/openssl/engine.h