From 3e04f2d1e62aa76f0ffe4ad36dccd843cc89b9ae Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Wed, 18 Jun 2014 16:40:55 +0200 Subject: crypto: Fix memory leak of EC "keys" and "points" --- lib/crypto/c_src/crypto.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/crypto') diff --git a/lib/crypto/c_src/crypto.c b/lib/crypto/c_src/crypto.c index 828f9a8a2b..83c53f8b9f 100644 --- a/lib/crypto/c_src/crypto.c +++ b/lib/crypto/c_src/crypto.c @@ -3222,6 +3222,7 @@ out: if (bn_order) BN_free(bn_order); if (cofactor) BN_free(cofactor); if (group) EC_GROUP_free(group); + if (point) EC_POINT_free(point); return key; } @@ -3384,8 +3385,11 @@ static ERL_NIF_TERM ec_key_generate(ErlNifEnv* env, int argc, const ERL_NIF_TERM EC_KEY_free(key); return enif_make_tuple2(env, pub_key, priv_key); } - else + else { + if (key) + EC_KEY_free(key); return enif_make_badarg(env); + } #else return atom_notsup; #endif -- cgit v1.2.3