mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-07 18:50:27 +09:00
mbedtls: Avoid memory leak when handling ECDSA keys
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
16
src/auth.c
16
src/auth.c
@@ -1693,18 +1693,22 @@ int ssh_userauth_agent_pubkey(ssh_session session,
|
||||
key->type = publickey->type;
|
||||
key->type_c = ssh_key_type_to_char(key->type);
|
||||
key->flags = SSH_KEY_FLAG_PUBLIC;
|
||||
#ifndef HAVE_LIBCRYPTO
|
||||
key->rsa = publickey->rsa_pub;
|
||||
#else
|
||||
#if defined(HAVE_LIBMBEDCRYPTO)
|
||||
key->pk = publickey->rsa_pub;
|
||||
#elif defined(HAVE_LIBCRYPTO)
|
||||
key->key = publickey->key_pub;
|
||||
#else
|
||||
key->rsa = publickey->rsa_pub;
|
||||
#endif /* HAVE_LIBCRYPTO */
|
||||
|
||||
rc = ssh_userauth_agent_publickey(session, username, key);
|
||||
|
||||
#ifndef HAVE_LIBCRYPTO
|
||||
key->rsa = NULL;
|
||||
#else
|
||||
#if defined(HAVE_LIBMBEDCRYPTO)
|
||||
key->pk = NULL;
|
||||
#elif defined(HAVE_LIBCRYPTO)
|
||||
key->key = NULL;
|
||||
#else
|
||||
key->rsa = NULL;
|
||||
#endif /* HAVE_LIBCRYPTO */
|
||||
ssh_key_free(key);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user