diff options
author | Christophe Jaillet <christophe.jaillet@wanadoo.fr> | 2017-10-08 11:39:49 +0200 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2017-10-12 22:54:40 +0800 |
commit | 616129cc6e75fb4da6681c16c981fa82dfe5e4c7 (patch) | |
tree | f4957d4219eed7cff9f285d08cbf5fc6d10c567d /crypto/lrw.c | |
parent | d9fa482e5913213c2686404238f7f9cdb14b6c6c (diff) | |
download | lwn-616129cc6e75fb4da6681c16c981fa82dfe5e4c7.tar.gz lwn-616129cc6e75fb4da6681c16c981fa82dfe5e4c7.zip |
crypto: lrw - Fix an error handling path in 'create()'
All error handling paths 'goto err_drop_spawn' except this one.
In order to avoid some resources leak, we should do it as well here.
Fixes: 700cb3f5fe75 ("crypto: lrw - Convert to skcipher")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/lrw.c')
-rw-r--r-- | crypto/lrw.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/crypto/lrw.c b/crypto/lrw.c index a8bfae4451bf..eb681e9fe574 100644 --- a/crypto/lrw.c +++ b/crypto/lrw.c @@ -610,8 +610,10 @@ static int create(struct crypto_template *tmpl, struct rtattr **tb) ecb_name[len - 1] = 0; if (snprintf(inst->alg.base.cra_name, CRYPTO_MAX_ALG_NAME, - "lrw(%s)", ecb_name) >= CRYPTO_MAX_ALG_NAME) - return -ENAMETOOLONG; + "lrw(%s)", ecb_name) >= CRYPTO_MAX_ALG_NAME) { + err = -ENAMETOOLONG; + goto err_drop_spawn; + } } inst->alg.base.cra_flags = alg->base.cra_flags & CRYPTO_ALG_ASYNC; |