From: Eric Biggers <ebiggers@kernel.org>
To: linux-crypto@vger.kernel.org
Subject: [PATCH 08/12] crypto: geniv - simply error handling in aead_geniv_alloc()
Date: Tue, 25 Feb 2020 20:59:20 -0800 [thread overview]
Message-ID: <20200226045924.97053-9-ebiggers@kernel.org> (raw)
In-Reply-To: <20200226045924.97053-1-ebiggers@kernel.org>
From: Eric Biggers <ebiggers@google.com>
Simplify the error handling in aead_geniv_alloc() by taking advantage of
crypto_grab_aead() now handling an ERR_PTR() name and by taking
advantage of crypto_drop_aead() now accepting (as a no-op) a spawn that
hasn't been grabbed yet.
Signed-off-by: Eric Biggers <ebiggers@google.com>
---
crypto/geniv.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/crypto/geniv.c b/crypto/geniv.c
index dbcc640274cda..6a90c52d49ad1 100644
--- a/crypto/geniv.c
+++ b/crypto/geniv.c
@@ -41,7 +41,6 @@ static void aead_geniv_free(struct aead_instance *inst)
struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
struct rtattr **tb, u32 type, u32 mask)
{
- const char *name;
struct crypto_aead_spawn *spawn;
struct crypto_attr_type *algt;
struct aead_instance *inst;
@@ -57,10 +56,6 @@ struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
if ((algt->type ^ CRYPTO_ALG_TYPE_AEAD) & algt->mask)
return ERR_PTR(-EINVAL);
- name = crypto_attr_alg_name(tb[1]);
- if (IS_ERR(name))
- return ERR_CAST(name);
-
inst = kzalloc(sizeof(*inst) + sizeof(*spawn), GFP_KERNEL);
if (!inst)
return ERR_PTR(-ENOMEM);
@@ -71,7 +66,7 @@ struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
mask |= crypto_requires_sync(algt->type, algt->mask);
err = crypto_grab_aead(spawn, aead_crypto_instance(inst),
- name, type, mask);
+ crypto_attr_alg_name(tb[1]), type, mask);
if (err)
goto err_free_inst;
@@ -82,17 +77,17 @@ struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
err = -EINVAL;
if (ivsize < sizeof(u64))
- goto err_drop_alg;
+ goto err_free_inst;
err = -ENAMETOOLONG;
if (snprintf(inst->alg.base.cra_name, CRYPTO_MAX_ALG_NAME,
"%s(%s)", tmpl->name, alg->base.cra_name) >=
CRYPTO_MAX_ALG_NAME)
- goto err_drop_alg;
+ goto err_free_inst;
if (snprintf(inst->alg.base.cra_driver_name, CRYPTO_MAX_ALG_NAME,
"%s(%s)", tmpl->name, alg->base.cra_driver_name) >=
CRYPTO_MAX_ALG_NAME)
- goto err_drop_alg;
+ goto err_free_inst;
inst->alg.base.cra_flags = alg->base.cra_flags & CRYPTO_ALG_ASYNC;
inst->alg.base.cra_priority = alg->base.cra_priority;
@@ -111,10 +106,8 @@ struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
out:
return inst;
-err_drop_alg:
- crypto_drop_aead(spawn);
err_free_inst:
- kfree(inst);
+ aead_geniv_free(inst);
inst = ERR_PTR(err);
goto out;
}
--
2.25.1
next prev parent reply other threads:[~2020-02-26 5:01 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-26 4:59 [PATCH 00/12] crypto: more template instantiation cleanups Eric Biggers
2020-02-26 4:59 ` [PATCH 01/12] crypto: authencesn - fix weird comma-terminated line Eric Biggers
2020-02-26 4:59 ` [PATCH 02/12] crypto: ccm - simplify error handling in crypto_rfc4309_create() Eric Biggers
2020-02-26 4:59 ` [PATCH 03/12] crypto: cryptd - simplify error handling in cryptd_create_*() Eric Biggers
2020-02-26 4:59 ` [PATCH 04/12] crypto: ctr - simplify error handling in crypto_rfc3686_create() Eric Biggers
2020-02-26 4:59 ` [PATCH 05/12] crypto: cts - simplify error handling in crypto_cts_create() Eric Biggers
2020-02-26 4:59 ` [PATCH 06/12] crypto: gcm - simplify error handling in crypto_rfc4106_create() Eric Biggers
2020-02-26 4:59 ` [PATCH 07/12] crypto: gcm - simplify error handling in crypto_rfc4543_create() Eric Biggers
2020-02-26 4:59 ` Eric Biggers [this message]
2020-02-26 4:59 ` [PATCH 09/12] crypto: lrw - simplify error handling in create() Eric Biggers
2020-02-26 4:59 ` [PATCH 10/12] crypto: pcrypt - simplify error handling in pcrypt_create_aead() Eric Biggers
2020-02-26 4:59 ` [PATCH 11/12] crypto: rsa-pkcs1pad - simplify error handling in pkcs1pad_create() Eric Biggers
2020-02-26 4:59 ` [PATCH 12/12] crypto: xts - simplify error handling in ->create() Eric Biggers
2020-03-06 1:51 ` [PATCH 00/12] crypto: more template instantiation cleanups Herbert Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200226045924.97053-9-ebiggers@kernel.org \
--to=ebiggers@kernel.org \
--cc=linux-crypto@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.