backport fix the memory leak in fixedpool (#9272) (#9309)

* fix the memory leak in fixedpool (#9272)

* fix the memory leak in fixedpool

fixes #9255

* simplify fix

* resolve clippy warnings
This commit is contained in:
Paul Kehrer 2023-07-30 01:02:45 +12:00 committed by GitHub
parent 7431db737c
commit 0da7165aa7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View file

@ -148,7 +148,7 @@ struct TestCertificate {
subject_value_tags: Vec<u8>,
}
fn parse_name_value_tags(rdns: &mut Name<'_>) -> Vec<u8> {
fn parse_name_value_tags(rdns: &Name<'_>) -> Vec<u8> {
let mut tags = vec![];
for rdn in rdns.unwrap_read().clone() {
let mut attributes = rdn.collect::<Vec<_>>();
@ -168,13 +168,13 @@ fn time_tag(t: &Time) -> u8 {
#[pyo3::prelude::pyfunction]
fn test_parse_certificate(data: &[u8]) -> Result<TestCertificate, CryptographyError> {
let mut cert = asn1::parse_single::<Certificate<'_>>(data)?;
let cert = asn1::parse_single::<Certificate<'_>>(data)?;
Ok(TestCertificate {
not_before_tag: time_tag(&cert.tbs_cert.validity.not_before),
not_after_tag: time_tag(&cert.tbs_cert.validity.not_after),
issuer_value_tags: parse_name_value_tags(&mut cert.tbs_cert.issuer),
subject_value_tags: parse_name_value_tags(&mut cert.tbs_cert.subject),
issuer_value_tags: parse_name_value_tags(&cert.tbs_cert.issuer),
subject_value_tags: parse_name_value_tags(&cert.tbs_cert.subject),
})
}

View file

@ -52,6 +52,11 @@ impl FixedPool {
})
}
}
fn __traverse__(&self, visit: pyo3::PyVisit<'_>) -> Result<(), pyo3::PyTraverseError> {
visit.call(&self.create_fn)?;
Ok(())
}
}
#[pyo3::pymethods]