Merge pull request #942 from sfackler/fix-cms-crash
Fix use-after-free in cms
This commit is contained in:
commit
63afe3016c
|
|
@ -138,22 +138,14 @@ impl CmsContentInfo {
|
|||
flags: CMSOptions,
|
||||
) -> Result<CmsContentInfo, ErrorStack> {
|
||||
unsafe {
|
||||
let signcert = match signcert {
|
||||
Some(cert) => cert.as_ptr(),
|
||||
None => ptr::null_mut(),
|
||||
};
|
||||
let pkey = match pkey {
|
||||
Some(pkey) => pkey.as_ptr(),
|
||||
None => ptr::null_mut(),
|
||||
};
|
||||
let data_bio_ptr = match data {
|
||||
Some(data) => MemBioSlice::new(data)?.as_ptr(),
|
||||
None => ptr::null_mut(),
|
||||
};
|
||||
let certs = match certs {
|
||||
Some(certs) => certs.as_ptr(),
|
||||
None => ptr::null_mut(),
|
||||
let signcert = signcert.map_or(ptr::null_mut(), |p| p.as_ptr());
|
||||
let pkey = pkey.map_or(ptr::null_mut(), |p| p.as_ptr());
|
||||
let data_bio = match data {
|
||||
Some(data) => Some(MemBioSlice::new(data)?),
|
||||
None => None,
|
||||
};
|
||||
let data_bio_ptr = data_bio.as_ref().map_or(ptr::null_mut(), |p| p.as_ptr());
|
||||
let certs = certs.map_or(ptr::null_mut(), |p| p.as_ptr());
|
||||
|
||||
let cms = cvt_p(ffi::CMS_sign(
|
||||
signcert,
|
||||
|
|
|
|||
Loading…
Reference in New Issue