diff options
| -rw-r--r-- | src/cryptography/hazmat/backends/openssl/backend.py | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py index 406117b9..f4cfa940 100644 --- a/src/cryptography/hazmat/backends/openssl/backend.py +++ b/src/cryptography/hazmat/backends/openssl/backend.py @@ -132,6 +132,9 @@ def _encode_basic_constraints(backend, basic_constraints, critical):      pp = backend._ffi.new('unsigned char **')      r = backend._lib.i2d_BASIC_CONSTRAINTS(constraints, pp)      assert r > 0 +    pp = backend._ffi.gc( +        pp, lambda pointer: backend._lib.OPENSSL_free(pointer[0]) +    )      # Wrap that in an X509 extension object.      extension = backend._lib.X509_EXTENSION_create_by_OBJ( @@ -142,10 +145,6 @@ def _encode_basic_constraints(backend, basic_constraints, critical):      )      assert extension != backend._ffi.NULL -    pp[0] = backend._ffi.gc(pp[0], backend._lib.OPENSSL_free) -    # Release acquired memory. -    pp[0] = backend._ffi.NULL -      # Return the wrapped extension.      return extension  | 
