From 8ae424235e1a09b5fdcd2879a960742d529c04da Mon Sep 17 00:00:00 2001 From: mredlek Date: Tue, 7 Feb 2017 21:49:07 +0100 Subject: [PATCH] Make it compile again. Make self mut in set_subject_name. Add assert to prevent a null pointer in subject_name. --- openssl/src/asn1.rs | 8 +++++++- openssl/src/x509/mod.rs | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/openssl/src/asn1.rs b/openssl/src/asn1.rs index 8016df13..46c09740 100644 --- a/openssl/src/asn1.rs +++ b/openssl/src/asn1.rs @@ -93,7 +93,13 @@ impl Asn1StringRef { } } -type_!(Asn1Integer, Asn1IntegerRef, ffi::ASN1_INTEGER, ffi::ASN1_INTEGER_free); +foreign_type! { + type CType = ffi::ASN1_INTEGER; + fn drop = ffi::ASN1_INTEGER_free; + + pub struct Asn1Integer; + pub struct Asn1IntegerRef; +} impl Asn1IntegerRef { pub fn get(&self) -> i64 { diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index 174635ca..d9fd36ef 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -647,11 +647,12 @@ impl X509ReqRef { pub fn subject_name(&self) -> &X509NameRef { unsafe { let name = compat::X509_REQ_get_subject_name(self.as_ptr()); + assert!(!name.is_null()); X509NameRef::from_ptr(name) } } - pub fn set_subject_name(&self, value: &X509NameRef) -> Result<(), ErrorStack> { + pub fn set_subject_name(&mut self, value: &X509NameRef) -> Result<(), ErrorStack> { unsafe { cvt(ffi::X509_REQ_set_subject_name(self.as_ptr(), value.as_ptr())).map(|_| ()) }