diff --git a/crypto/hmac.c b/crypto/hmac.c index f03cb32147cc25194adf3f5ad53dcdbbfaa8a39d..8b2a212eb0ad412e1d8a34d178c53d6eefb71342 100644 --- a/crypto/hmac.c +++ b/crypto/hmac.c @@ -152,8 +152,10 @@ static int hmac_init_tfm(struct crypto_tfm *tfm) parent->descsize = sizeof(struct shash_desc) + crypto_shash_descsize(hash); - if (WARN_ON(parent->descsize > HASH_MAX_DESCSIZE)) + if (WARN_ON(parent->descsize > HASH_MAX_DESCSIZE)) { + crypto_free_shash(hash); return -EINVAL; + } ctx->hash = hash; return 0; diff --git a/crypto/jitterentropy-kcapi.c b/crypto/jitterentropy-kcapi.c index 6ea1a270b8dc2e9890aa1f4a29bd0a45c2a481ae..787dccca37159820054b4c71c78a6a5ec72e4e65 100644 --- a/crypto/jitterentropy-kcapi.c +++ b/crypto/jitterentropy-kcapi.c @@ -198,7 +198,7 @@ static void __exit jent_mod_exit(void) crypto_unregister_rng(&jent_alg); } -subsys_initcall(jent_mod_init); +module_init(jent_mod_init); module_exit(jent_mod_exit); MODULE_LICENSE("Dual BSD/GPL");