diff options
| author | Peter Gerber <[email protected]> | 2017-03-16 21:36:43 +0000 |
|---|---|---|
| committer | Peter Gerber <[email protected]> | 2017-03-16 22:14:58 +0000 |
| commit | f82f6509531f824be6fb102651c570352f7a016d (patch) | |
| tree | e60add4a1f8ac16686cb4398804f543c7e3a71ba /openssl-sys/src | |
| parent | Release v0.9.9 (diff) | |
| download | rust-openssl-f82f6509531f824be6fb102651c570352f7a016d.tar.xz rust-openssl-f82f6509531f824be6fb102651c570352f7a016d.zip | |
Panic if lock managed by `locking_function` is doubly unlocked
Trying to unlock an unlocked lock is always an error and should
be treated as such.
This is related to #597.
Diffstat (limited to 'openssl-sys/src')
| -rw-r--r-- | openssl-sys/src/libressl.rs | 2 | ||||
| -rw-r--r-- | openssl-sys/src/ossl10x.rs | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/openssl-sys/src/libressl.rs b/openssl-sys/src/libressl.rs index 40490cd0..dc3bfe11 100644 --- a/openssl-sys/src/libressl.rs +++ b/openssl-sys/src/libressl.rs @@ -576,7 +576,7 @@ unsafe extern fn locking_function(mode: c_int, n: c_int, _file: *const c_char, if mode & ::CRYPTO_LOCK != 0 { (*GUARDS)[n as usize] = Some(mutex.lock().unwrap()); } else { - &(*GUARDS)[n as usize].take(); + &(*GUARDS)[n as usize].take().expect("lock already unlocked"); } } diff --git a/openssl-sys/src/ossl10x.rs b/openssl-sys/src/ossl10x.rs index 0ffe3850..fade0f99 100644 --- a/openssl-sys/src/ossl10x.rs +++ b/openssl-sys/src/ossl10x.rs @@ -719,7 +719,7 @@ unsafe extern fn locking_function(mode: c_int, n: c_int, _file: *const c_char, if mode & ::CRYPTO_LOCK != 0 { (*GUARDS)[n as usize] = Some(mutex.lock().unwrap()); } else { - &(*GUARDS)[n as usize].take(); + &(*GUARDS)[n as usize].take().expect("lock already unlocked"); } } |