diff options
Diffstat (limited to 'openssl-sys/src/ossl10x.rs')
| -rw-r--r-- | openssl-sys/src/ossl10x.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/openssl-sys/src/ossl10x.rs b/openssl-sys/src/ossl10x.rs index a0fdb396..771dc528 100644 --- a/openssl-sys/src/ossl10x.rs +++ b/openssl-sys/src/ossl10x.rs @@ -2,6 +2,7 @@ use std::sync::{Mutex, MutexGuard}; use std::sync::{Once, ONCE_INIT}; use std::mem; use std::ptr; +use std::process; use libc::{c_int, c_char, c_void, c_long, c_uchar, size_t, c_uint, c_ulong}; #[cfg(not(ossl101))] @@ -746,7 +747,10 @@ unsafe extern "C" fn locking_function(mode: c_int, n: c_int, _file: *const c_cha if mode & ::CRYPTO_LOCK != 0 { (*GUARDS)[n as usize] = Some(mutex.lock().unwrap()); } else { - &(*GUARDS)[n as usize].take().expect("lock already unlocked"); + if let None = &(*GUARDS)[n as usize].take() { + println!("lock {} already unlocked", n); + process::abort(); + } } } |