aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2016-09-04 09:06:03 -0500
committerAlex Gaynor <alex.gaynor@gmail.com>2016-09-04 10:06:03 -0400
commitb7a20898438a819f37b335adb4d1cab81ce4e0b3 (patch)
tree695f59cc51b0fd9af913f7efa07e8159a0e8112a
parent63bbf18e62ac2a6e5a92843a3040dad378284ac7 (diff)
downloadcryptography-b7a20898438a819f37b335adb4d1cab81ce4e0b3.tar.gz
cryptography-b7a20898438a819f37b335adb4d1cab81ce4e0b3.tar.bz2
cryptography-b7a20898438a819f37b335adb4d1cab81ce4e0b3.zip
fix memory leak reported in #3134 (#3135)
-rw-r--r--src/cryptography/hazmat/backends/openssl/encode_asn1.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/encode_asn1.py b/src/cryptography/hazmat/backends/openssl/encode_asn1.py
index 944dedc6..467aa88e 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