Skip to content

Commit d7a8f3f

Browse files
committed
fix potential memory leak in X509Revoked::new_raw
1 parent 4213ae2 commit d7a8f3f

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

openssl/src/x509/mod.rs

+9-8
Original file line numberDiff line numberDiff line change
@@ -1662,14 +1662,15 @@ impl X509Revoked {
16621662
unsafe fn new_raw(to_revoke: &X509) -> Result<*mut ffi::X509_REVOKED, ErrorStack> {
16631663
let result = cvt_p(ffi::X509_REVOKED_new())?;
16641664

1665-
cvt(ffi::X509_REVOKED_set_serialNumber(
1666-
result,
1667-
to_revoke.serial_number().as_ptr(),
1668-
))?;
1669-
cvt(ffi::X509_REVOKED_set_revocationDate(
1670-
result,
1671-
crate::asn1::Asn1Time::now()?.as_ptr(),
1672-
))?;
1665+
if ffi::X509_REVOKED_set_serialNumber(result, to_revoke.serial_number().as_ptr()) <= 0 {
1666+
ffi::X509_REVOKED_free(result);
1667+
return Err(ErrorStack::get());
1668+
}
1669+
if ffi::X509_REVOKED_set_revocationDate(result, crate::asn1::Asn1Time::now()?.as_ptr()) <= 0
1670+
{
1671+
ffi::X509_REVOKED_free(result);
1672+
return Err(ErrorStack::get());
1673+
}
16731674

16741675
Ok(result)
16751676
}

0 commit comments

Comments
 (0)