diff options
author | Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> | 2018-06-28 14:07:57 +0200 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> | 2018-06-28 14:07:57 +0200 |
commit | 4ac44d603f290242cbba2e0d0383460412d55c04 (patch) | |
tree | a573d3a85920efb639707e6e528e0cac59666199 /crypto/api.c | |
parent | aeb235fbdded8149156360a2b2f9ca2c6d99448e (diff) | |
parent | c5c0586a6771a33a5da7985495c1beab72d292b1 (diff) | |
download | linux-crypto-4ac44d603f290242cbba2e0d0383460412d55c04.tar.gz linux-crypto-4ac44d603f290242cbba2e0d0383460412d55c04.zip |
Merge tag 'v4.18-rc2' of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into fbdev-for-next
Linux 4.18-rc2
Diffstat (limited to '')
-rw-r--r-- | crypto/api.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/crypto/api.c b/crypto/api.c index 1d5290c6..0ee632bb 100644 --- a/crypto/api.c +++ b/crypto/api.c @@ -204,9 +204,14 @@ static struct crypto_alg *crypto_alg_lookup(const char *name, u32 type, down_read(&crypto_alg_sem); alg = __crypto_alg_lookup(name, type | test, mask | test); - if (!alg && test) - alg = __crypto_alg_lookup(name, type, mask) ? - ERR_PTR(-ELIBBAD) : NULL; + if (!alg && test) { + alg = __crypto_alg_lookup(name, type, mask); + if (alg && !crypto_is_larval(alg)) { + /* Test failed */ + crypto_mod_put(alg); + alg = ERR_PTR(-ELIBBAD); + } + } up_read(&crypto_alg_sem); return alg; |