diff options
| author | Benjamin Fry <[email protected]> | 2017-03-26 00:20:49 -0700 |
|---|---|---|
| committer | Bastian Köcher <[email protected]> | 2018-03-07 13:54:35 +0100 |
| commit | 53adf0e6a4975c775dc1f18875d6ebc972650b92 (patch) | |
| tree | e6af9c2e03cc12d6886b4afed2dcef439b9606e3 /openssl/src | |
| parent | cleanup and add negative test (diff) | |
| download | rust-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.rs | 6 |
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(|_| ())); |