# HG changeset patch
# User Matti Picus <matti.picus@gmail.com>
# Date 1671200980 -7200
#      Fri Dec 16 16:29:40 2022 +0200
# Branch py3.8
# Node ID fc863116b2ecb2a379b86b4959377150e16feb1b
# Parent  0cf2f9c83544fc04ca3c6b234a3fed60e3d00246
fix using wrong free in _ssl (issue 3871)

diff --git a/lib_pypy/_cffi_ssl/_stdssl/certificate.py b/lib_pypy/_cffi_ssl/_stdssl/certificate.py
--- a/lib_pypy/_cffi_ssl/_stdssl/certificate.py
+++ b/lib_pypy/_cffi_ssl/_stdssl/certificate.py
@@ -30,7 +30,7 @@
     if (info == ffi.NULL):
         return None;
     if lib.sk_ACCESS_DESCRIPTION_num(info) == 0:
-        lib.sk_ACCESS_DESCRIPTION_free(info)
+        lib.AUTHORITY_INFO_ACCESS_free(info)
         return None
 
     lst = []
@@ -44,7 +44,7 @@
         uri = ad.location.d.uniformResourceIdentifier
         ostr = _str_with_len(uri.data, uri.length)
         lst.append(ostr)
-    lib.sk_ACCESS_DESCRIPTION_free(info)
+    lib.AUTHORITY_INFO_ACCESS_free(info)
 
     # convert to tuple or None
     if len(lst) == 0: return None
@@ -266,7 +266,7 @@
     for i in range(count):
         dp = lib.sk_DIST_POINT_value(dps, i);
         if not dp.distpoint:
-            return None
+            continue
         gns = dp.distpoint.name.fullname;
 
         jcount = lib.sk_GENERAL_NAME_num(gns)
@@ -279,8 +279,7 @@
             ouri = _str_with_len(uri.data, uri.length)
             lst.append(ouri)
 
-    if lib.OPENSSL_VERSION_NUMBER < 0x10001000:
-        lib.sk_DIST_POINT_free(dps);
+    lib.CRL_DIST_POINTS_free(dps);
 
     if len(lst) == 0: return None
     return tuple(lst)