summaryrefslogtreecommitdiffstats
path: root/crypto/lrw.c
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>2011-10-18 12:32:14 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2011-11-09 04:43:00 +0100
commitb884f8b901b968b90d8d1b82d388583fa1b2605d (patch)
treea563f7e65847dce4e971aa525b6fd3cd0c787adf /crypto/lrw.c
parentcrypto: serpent - rename module from serpent to serpent_generic (diff)
downloadlinux-b884f8b901b968b90d8d1b82d388583fa1b2605d.tar.xz
linux-b884f8b901b968b90d8d1b82d388583fa1b2605d.zip
crypto: lrw - fix memleak
LRW module leaks child cipher memory when init_tfm() fails because of child block size not being 16. Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/lrw.c')
-rw-r--r--crypto/lrw.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/lrw.c b/crypto/lrw.c
index 358f80be2bf9..fca3246a953f 100644
--- a/crypto/lrw.c
+++ b/crypto/lrw.c
@@ -220,6 +220,7 @@ static int init_tfm(struct crypto_tfm *tfm)
if (crypto_cipher_blocksize(cipher) != 16) {
*flags |= CRYPTO_TFM_RES_BAD_BLOCK_LEN;
+ crypto_free_cipher(cipher);
return -EINVAL;
}