Use ManuallyDrop
Suggested by clippy, we need to use ManuallyDrop for these types in order to correctly free up the memory.
This commit is contained in:
parent
c38136b6bc
commit
a584643486
19
src/lib.rs
19
src/lib.rs
|
@ -809,13 +809,15 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_raw_ctx() {
|
fn test_raw_ctx() {
|
||||||
|
use std::mem::ManuallyDrop;
|
||||||
|
|
||||||
let ctx_full = Secp256k1::new();
|
let ctx_full = Secp256k1::new();
|
||||||
let ctx_sign = Secp256k1::signing_only();
|
let ctx_sign = Secp256k1::signing_only();
|
||||||
let ctx_vrfy = Secp256k1::verification_only();
|
let ctx_vrfy = Secp256k1::verification_only();
|
||||||
|
|
||||||
let full = unsafe {Secp256k1::from_raw_all(ctx_full.ctx)};
|
let mut full = unsafe {Secp256k1::from_raw_all(ctx_full.ctx)};
|
||||||
let sign = unsafe {Secp256k1::from_raw_signining_only(ctx_sign.ctx)};
|
let mut sign = unsafe {Secp256k1::from_raw_signining_only(ctx_sign.ctx)};
|
||||||
let vrfy = unsafe {Secp256k1::from_raw_verification_only(ctx_vrfy.ctx)};
|
let mut vrfy = unsafe {Secp256k1::from_raw_verification_only(ctx_vrfy.ctx)};
|
||||||
|
|
||||||
let (sk, pk) = full.generate_keypair(&mut thread_rng());
|
let (sk, pk) = full.generate_keypair(&mut thread_rng());
|
||||||
let msg = Message::from_slice(&[2u8; 32]).unwrap();
|
let msg = Message::from_slice(&[2u8; 32]).unwrap();
|
||||||
|
@ -827,8 +829,15 @@ mod tests {
|
||||||
assert!(vrfy.verify(&msg, &sig, &pk).is_ok());
|
assert!(vrfy.verify(&msg, &sig, &pk).is_ok());
|
||||||
assert!(full.verify(&msg, &sig, &pk).is_ok());
|
assert!(full.verify(&msg, &sig, &pk).is_ok());
|
||||||
|
|
||||||
drop(full);drop(sign);drop(vrfy);
|
unsafe {
|
||||||
drop(ctx_full);drop(ctx_sign);drop(ctx_vrfy);
|
ManuallyDrop::drop(&mut full);
|
||||||
|
ManuallyDrop::drop(&mut sign);
|
||||||
|
ManuallyDrop::drop(&mut vrfy);
|
||||||
|
|
||||||
|
}
|
||||||
|
drop(ctx_full);
|
||||||
|
drop(ctx_sign);
|
||||||
|
drop(ctx_vrfy);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
Loading…
Reference in New Issue