You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
50 lines
1.5 KiB
7 years ago
|
From 7b5cecf595cd1f4d0fb5b73e97f5fe2e00c4e255 Mon Sep 17 00:00:00 2001
|
||
|
From: Jeremy Cline <jeremy@jcline.org>
|
||
|
Date: Thu, 7 Sep 2017 20:11:08 -0400
|
||
|
Subject: [PATCH] Provide a destructor for the CRL object (#690)
|
||
|
|
||
|
This frees the memory allocated for the CRL object. Prior to this
|
||
|
commit, the following script would leak memory:
|
||
|
|
||
|
```
|
||
|
from OpenSSL.crypto import load_crl, FILETYPE_PEM
|
||
|
|
||
|
crl = """
|
||
|
-----BEGIN X509 CRL-----
|
||
|
MIIBfDCB5jANBgkqhkiG9w0BAQsFADCBoDELMAkGA1UEBhMCVVMxCzAJBgNVBAgT
|
||
|
Ak5DMRAwDgYDVQQHEwdSYWxlaWdoMRcwFQYDVQQKEw5GZWRvcmEgUHJvamVjdDEP
|
||
|
MA0GA1UECxMGZmVkbXNnMQ8wDQYDVQQDEwZmZWRtc2cxDzANBgNVBCkTBmZlZG1z
|
||
|
ZzEmMCQGCSqGSIb3DQEJARYXYWRtaW5AZmVkb3JhcHJvamVjdC5vcmcXDTE3MDYx
|
||
|
NTIxMDMwOFoXDTM3MDYxMDIxMDMwOFowFDASAgECFw0xMjA3MTUyMTE4NTJaMA0G
|
||
|
CSqGSIb3DQEBCwUAA4GBAGOBuDxmRFNcYP71LBsCOfFzKij00qpxM01d5/G6+0kM
|
||
|
WJT8oTajMQoY6oISvQDq6TkwEoKc1yl6Ld1/XTtCNOhbybzRBAVf/Lxi/nRPP1JO
|
||
|
qOdZs5jMLLQq1mRJz+MgKHHTDlnvpbjHMuyTss1RblFDr4iZPHMcBNKPGIj3pmpA
|
||
|
-----END X509 CRL-----
|
||
|
"""
|
||
|
|
||
|
for _ in range(0, 1000000):
|
||
|
load_crl(FILETYPE_PEM, crl)
|
||
|
```
|
||
|
|
||
|
Signed-off-by: Jeremy Cline <jeremy@jcline.org>
|
||
|
---
|
||
|
src/OpenSSL/crypto.py | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/OpenSSL/crypto.py b/src/OpenSSL/crypto.py
|
||
|
index 52fcdaf..85c60b7 100644
|
||
|
--- a/src/OpenSSL/crypto.py
|
||
|
+++ b/src/OpenSSL/crypto.py
|
||
|
@@ -2758,7 +2758,7 @@ def load_crl(type, buffer):
|
||
|
_raise_current_error()
|
||
|
|
||
|
result = CRL.__new__(CRL)
|
||
|
- result._crl = crl
|
||
|
+ result._crl = _ffi.gc(crl, _lib.X509_CRL_free)
|
||
|
return result
|
||
|
|
||
|
|
||
|
--
|
||
|
2.13.5
|
||
|
|