aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Jelen <jjelen@redhat.com>2019-12-16 17:09:54 +0100
committerAndreas Schneider <asn@cryptomilk.org>2019-12-23 14:45:24 +0100
commit7e692ee1b6f0c78008ad2143174d080a4db4b254 (patch)
treead79bc8a5a8743a53cb3d0045dbbbdc2d35a4b16 /src
parentdd54ffb2f1bc801a6057e5fbc57288ec88998149 (diff)
downloadlibssh-7e692ee1b6f0c78008ad2143174d080a4db4b254.tar.gz
libssh-7e692ee1b6f0c78008ad2143174d080a4db4b254.tar.xz
libssh-7e692ee1b6f0c78008ad2143174d080a4db4b254.zip
libgcrypt: Do not leak memory with invalid key lengths
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src')
-rw-r--r--src/libgcrypt.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libgcrypt.c b/src/libgcrypt.c
index 90eb42a3..53de4653 100644
--- a/src/libgcrypt.c
+++ b/src/libgcrypt.c
@@ -359,6 +359,10 @@ static int aes_set_key(struct ssh_cipher_struct *cipher, void *key, void *IV) {
return -1;
}
break;
+ default:
+ SSH_LOG(SSH_LOG_WARNING, "Unksupported key length %u.", cipher->keysize);
+ SAFE_FREE(cipher->key);
+ return -1;
}
if (gcry_cipher_setkey(cipher->key[0], key, cipher->keysize / 8)) {
gcry_cipher_close(cipher->key[0]);