aboutsummaryrefslogtreecommitdiff
path: root/openssl/src
diff options
context:
space:
mode:
authorBenjamin Fry <[email protected]>2017-03-26 00:20:49 -0700
committerBastian Köcher <[email protected]>2018-03-07 13:54:35 +0100
commit53adf0e6a4975c775dc1f18875d6ebc972650b92 (patch)
treee6af9c2e03cc12d6886b4afed2dcef439b9606e3 /openssl/src
parentcleanup and add negative test (diff)
downloadrust-openssl-53adf0e6a4975c775dc1f18875d6ebc972650b92.tar.xz
rust-openssl-53adf0e6a4975c775dc1f18875d6ebc972650b92.zip
delay return until after forgets
Diffstat (limited to 'openssl/src')
-rw-r--r--openssl/src/x509/mod.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs
index 6bb58dbd..6023b5a9 100644
--- a/openssl/src/x509/mod.rs
+++ b/openssl/src/x509/mod.rs
@@ -121,13 +121,15 @@ impl X509StoreContextRef {
unsafe {
ffi::init();
let context = try!(cvt_p(ffi::X509_STORE_CTX_new()).map(|p| X509StoreContext(p)));
- try!(cvt(ffi::X509_STORE_CTX_init(context.as_ptr(), trust.as_ptr(), cert.as_ptr(), cert_chain.as_ptr()))
- .map(|_| ()));
+ let init_result = cvt(ffi::X509_STORE_CTX_init(context.as_ptr(), trust.as_ptr(), cert.as_ptr(), cert_chain.as_ptr()))
+ .map(|_| ());
mem::forget(trust);
mem::forget(cert);
mem::forget(cert_chain);
+ try!(init_result);
+
// verify_cert returns an error `<= 0` if there was a validation error
try!(cvt(ffi::X509_verify_cert(context.as_ptr())).map(|_| ()));