From 4d5aa3923f9ae752db8a74a67e91b4d5e2239db9 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Wed, 21 Sep 2016 23:54:06 -0400 Subject: [PATCH] fix memory leak reported in #3134 (#3135) (#3159) --- src/cryptography/hazmat/backends/openssl/encode_asn1.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cryptography/hazmat/backends/openssl/encode_asn1.py b/src/cryptography/hazmat/backends/openssl/encode_asn1.py index 944dedc6c..467aa88eb 100644 --- a/src/cryptography/hazmat/backends/openssl/encode_asn1.py +++ b/src/cryptography/hazmat/backends/openssl/encode_asn1.py @@ -85,6 +85,10 @@ def _encode_name(backend, attributes): subject = backend._lib.X509_NAME_new() for attribute in attributes: name_entry = _encode_name_entry(backend, attribute) + # X509_NAME_add_entry dups the object so we need to gc this copy + name_entry = backend._ffi.gc( + name_entry, backend._lib.X509_NAME_ENTRY_free + ) res = backend._lib.X509_NAME_add_entry(subject, name_entry, -1, 0) backend.openssl_assert(res == 1) return subject