Skip to content

Commit

Permalink
Make openssl not cleanup at exit, which can lead to race conditions o…
Browse files Browse the repository at this point in the history
…n openssl >= 1.1.1b.

Fixes #1293.
  • Loading branch information
orium committed Jul 28, 2020
1 parent 5cf2c2d commit 2602f49
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
7 changes: 6 additions & 1 deletion openssl-sys/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,13 @@ pub fn init() {
// explicitly initialize to work around https://github.com/openssl/openssl/issues/3505
static INIT: Once = Once::new();

#[cfg(not(ossl111b))]
let init_options = OPENSSL_INIT_LOAD_SSL_STRINGS;
#[cfg(ossl111b)]
let init_options = OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_NO_ATEXIT;

INIT.call_once(|| unsafe {
OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, ptr::null_mut());
OPENSSL_init_ssl(init_options, ptr::null_mut());
})
}

Expand Down
2 changes: 2 additions & 0 deletions openssl-sys/src/ssl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1398,6 +1398,8 @@ cfg_if! {

#[cfg(ossl110)]
pub const OPENSSL_INIT_LOAD_SSL_STRINGS: u64 = 0x00200000;
#[cfg(ossl111b)]
pub const OPENSSL_INIT_NO_ATEXIT: u64 = 0x00080000;

extern "C" {
#[cfg(ossl110)]
Expand Down

0 comments on commit 2602f49

Please sign in to comment.