diff --git a/openssl/src/ssl/mod.rs b/openssl/src/ssl/mod.rs index 899ff1a6167e16ff25d13fa2aa852260a9b0fc35..ceb0d070a4d180fd9ab8cdfc9e11ced514a521cf 100644 --- a/openssl/src/ssl/mod.rs +++ b/openssl/src/ssl/mod.rs @@ -654,14 +654,18 @@ impl SslContextBuilder { } } - /// Sets a custom X509Store for verifying peer certificates + /// Sets a custom X509Store for verifying peer certificates. + /// + /// Requires the `v102` feature and OpenSSL 1.0.2, or the `v110` feature and OpenSSL 1.1.0. #[cfg(any(all(feature = "v102", ossl102), all(feature = "v110", ossl110)))] pub fn set_verify_cert_store(&mut self, cert_store: X509Store) -> Result<(), ErrorStack> { unsafe { // set0 will free, set1 increments, and then requires a free let ptr = cert_store.as_ptr(); + let result = cvt(ffi::SSL_CTX_set0_verify_cert_store(self.as_ptr(), ptr) as c_int).map(|_|()); + mem::forget(cert_store); - cvt(ffi::SSL_CTX_set0_verify_cert_store(self.as_ptr(), ptr) as c_int).map(|_|()) + result } }