aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2017-06-30 15:50:23 -0700
committerPaul Kehrer <paul.l.kehrer@gmail.com>2017-06-30 17:50:23 -0500
commit51f049ab3c6eaddd2afc5b089d54ac7b8244fa1e (patch)
treee00c0aa93e9693d582363bcfe567ed7af405e5b4 /src
parentb16206e4f5c1f2c18eebe669713df7223b0f4cb0 (diff)
downloadcryptography-51f049ab3c6eaddd2afc5b089d54ac7b8244fa1e.tar.gz
cryptography-51f049ab3c6eaddd2afc5b089d54ac7b8244fa1e.tar.bz2
cryptography-51f049ab3c6eaddd2afc5b089d54ac7b8244fa1e.zip
Fixed a memory leak in EC private numbers (#3741)
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index c481c094..18238e1c 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -1326,8 +1326,10 @@ class Backend(object):
ec_cdata = self._ec_key_set_public_key_affine_coordinates(
ec_cdata, public.x, public.y)
- res = self._lib.EC_KEY_set_private_key(
- ec_cdata, self._int_to_bn(numbers.private_value))
+ private_value = self._ffi.gc(
+ self._int_to_bn(numbers.private_value), self._lib.BN_free
+ )
+ res = self._lib.EC_KEY_set_private_key(ec_cdata, private_value)
self.openssl_assert(res == 1)
evp_pkey = self._ec_cdata_to_evp_pkey(ec_cdata)