diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2014-01-28 11:56:59 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-01-28 11:56:59 +0100 |
commit | 75be42df7599fa025ddab9c399e42313729fd8b2 (patch) | |
tree | be85b1f44ceaa8f6250cb119ad3c4cfa78a8bc4f /src/pki_crypto.c | |
parent | 3224506fe0441388c1d1ba889fc8e5d5b9e0dfb2 (diff) | |
download | libssh-75be42df7599fa025ddab9c399e42313729fd8b2.tar.gz libssh-75be42df7599fa025ddab9c399e42313729fd8b2.tar.xz libssh-75be42df7599fa025ddab9c399e42313729fd8b2.zip |
pki_crypto: Fix memory leak with EC_KEY_set_public_key().
BUG: https://red.libssh.org/issues/146
Diffstat (limited to 'src/pki_crypto.c')
-rw-r--r-- | src/pki_crypto.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/pki_crypto.c b/src/pki_crypto.c index 07bc7f99..77a115a8 100644 --- a/src/pki_crypto.c +++ b/src/pki_crypto.c @@ -200,9 +200,11 @@ int pki_pubkey_build_ecdsa(ssh_key key, int nid, ssh_string e) return -1; } + /* EC_KEY_set_public_key duplicates p */ ok = EC_KEY_set_public_key(key->ecdsa, p); + EC_POINT_free(p); if (!ok) { - EC_POINT_free(p); + return -1; } return 0; |