diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2019-04-11 20:57:13 +0800 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2019-04-11 08:57:13 -0400 |
commit | 92241410b5b0591d849443b3023992334a4be0a2 (patch) | |
tree | 0648442194c4a9e4c70ba89591a8bae1188bd9b2 /src/cryptography | |
parent | b839786c26e3d01691d476bf2895f73784256801 (diff) | |
download | cryptography-92241410b5b0591d849443b3023992334a4be0a2.tar.gz cryptography-92241410b5b0591d849443b3023992334a4be0a2.tar.bz2 cryptography-92241410b5b0591d849443b3023992334a4be0a2.zip |
fix a memory leak in AIA parsing (#4836)
* fix a memory leak in AIA parsing
* oops can't remove that
Diffstat (limited to 'src/cryptography')
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/decode_asn1.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/decode_asn1.py b/src/cryptography/hazmat/backends/openssl/decode_asn1.py index 773189d4..75d5844b 100644 --- a/src/cryptography/hazmat/backends/openssl/decode_asn1.py +++ b/src/cryptography/hazmat/backends/openssl/decode_asn1.py @@ -379,7 +379,14 @@ def _decode_authority_key_identifier(backend, akid): def _decode_authority_information_access(backend, aia): aia = backend._ffi.cast("Cryptography_STACK_OF_ACCESS_DESCRIPTION *", aia) - aia = backend._ffi.gc(aia, backend._lib.sk_ACCESS_DESCRIPTION_free) + aia = backend._ffi.gc( + aia, + lambda x: backend._lib.sk_ACCESS_DESCRIPTION_pop_free( + x, backend._ffi.addressof( + backend._lib._original_lib, "ACCESS_DESCRIPTION_free" + ) + ) + ) num = backend._lib.sk_ACCESS_DESCRIPTION_num(aia) access_descriptions = [] for i in range(num): |