Skip to content

Commit 0da7165

Browse files
authored
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
1 parent 7431db7 commit 0da7165

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/rust/src/asn1.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ struct TestCertificate {
148148
subject_value_tags: Vec<u8>,
149149
}
150150

151-
fn parse_name_value_tags(rdns: &mut Name<'_>) -> Vec<u8> {
151+
fn parse_name_value_tags(rdns: &Name<'_>) -> Vec<u8> {
152152
let mut tags = vec![];
153153
for rdn in rdns.unwrap_read().clone() {
154154
let mut attributes = rdn.collect::<Vec<_>>();
@@ -168,13 +168,13 @@ fn time_tag(t: &Time) -> u8 {
168168

169169
#[pyo3::prelude::pyfunction]
170170
fn test_parse_certificate(data: &[u8]) -> Result<TestCertificate, CryptographyError> {
171-
let mut cert = asn1::parse_single::<Certificate<'_>>(data)?;
171+
let cert = asn1::parse_single::<Certificate<'_>>(data)?;
172172

173173
Ok(TestCertificate {
174174
not_before_tag: time_tag(&cert.tbs_cert.validity.not_before),
175175
not_after_tag: time_tag(&cert.tbs_cert.validity.not_after),
176-
issuer_value_tags: parse_name_value_tags(&mut cert.tbs_cert.issuer),
177-
subject_value_tags: parse_name_value_tags(&mut cert.tbs_cert.subject),
176+
issuer_value_tags: parse_name_value_tags(&cert.tbs_cert.issuer),
177+
subject_value_tags: parse_name_value_tags(&cert.tbs_cert.subject),
178178
})
179179
}
180180

src/rust/src/pool.rs

+5
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ impl FixedPool {
5252
})
5353
}
5454
}
55+
56+
fn __traverse__(&self, visit: pyo3::PyVisit<'_>) -> Result<(), pyo3::PyTraverseError> {
57+
visit.call(&self.create_fn)?;
58+
Ok(())
59+
}
5560
}
5661

5762
#[pyo3::pymethods]

0 commit comments

Comments
 (0)