Author: Philip Jenvey <[email protected]>
Branch:
Changeset: r92425:a18e6d50eca1
Date: 2017-09-20 10:26 -0700
http://bitbucket.org/pypy/pypy/changeset/a18e6d50eca1/
Log: fix memory leak in _get_crl_dp
see https://github.com/python/cpython/commit/b2b00e0
diff --git a/pypy/module/_ssl/interp_ssl.py b/pypy/module/_ssl/interp_ssl.py
--- a/pypy/module/_ssl/interp_ssl.py
+++ b/pypy/module/_ssl/interp_ssl.py
@@ -996,9 +996,6 @@
libssl_AUTHORITY_INFO_ACCESS_free(info)
def _get_crl_dp(space, certificate):
- if OPENSSL_VERSION_NUMBER >= 0x10001000:
- # Calls x509v3_cache_extensions and sets up crldp
- libssl_X509_check_ca(certificate)
dps = rffi.cast(stack_st_DIST_POINT, libssl_X509_get_ext_d2i(
certificate, NID_crl_distribution_points, None, None))
if not dps:
@@ -1020,8 +1017,7 @@
s_uri = rffi.charpsize2str(uri.c_data, length)
cdp_w.append(space.newtext(s_uri))
finally:
- if OPENSSL_VERSION_NUMBER < 0x10001000:
- libssl_sk_DIST_POINT_free(dps)
+ libssl_CRL_DIST_POINTS_free(dps)
return space.newtuple(cdp_w[:])
def checkwait(space, w_sock, writing):
diff --git a/rpython/rlib/ropenssl.py b/rpython/rlib/ropenssl.py
--- a/rpython/rlib/ropenssl.py
+++ b/rpython/rlib/ropenssl.py
@@ -473,6 +473,7 @@
ssl_external('sk_ACCESS_DESCRIPTION_value', [AUTHORITY_INFO_ACCESS, rffi.INT],
ACCESS_DESCRIPTION,
macro=True)
ssl_external('AUTHORITY_INFO_ACCESS_free', [AUTHORITY_INFO_ACCESS],
lltype.Void)
+ssl_external('CRL_DIST_POINTS_free', [stack_st_DIST_POINT], lltype.Void)
ssl_external('GENERAL_NAME_print', [BIO, GENERAL_NAME], rffi.INT)
ssl_external('pypy_GENERAL_NAME_dirn', [GENERAL_NAME], X509_NAME,
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit