diff --git a/crypto/aead.c b/crypto/aead.c index 547491e35c63733f15ccb4697cf83109128125aa..222271070b49189bf2671acb1aee5a9ecc92ecc8 100644 --- a/crypto/aead.c +++ b/crypto/aead.c @@ -448,7 +448,8 @@ static int crypto_nivaead_default(struct crypto_alg *alg, u32 type, u32 mask) if (IS_ERR(inst)) goto put_tmpl; - if ((err = crypto_register_instance(tmpl, inst))) { + err = crypto_register_instance(tmpl, inst); + if (err) { tmpl->free(inst); goto put_tmpl; }