aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/crypto/blkcipher.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2009-02-18 20:33:55 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2009-02-18 21:20:06 +0800
commitb170a137f467ea951c3f256da1b911545acf3ffd (patch)
treeb8f65dc4e1b5b6cd9bb144698c7007b7483a7c80 /crypto/blkcipher.c
parentcrypto: api - Fix crypto_alloc_tfm/create_create_tfm return convention (diff)
downloadwireguard-linux-b170a137f467ea951c3f256da1b911545acf3ffd.tar.xz
wireguard-linux-b170a137f467ea951c3f256da1b911545acf3ffd.zip
crypto: skcipher - Avoid infinite loop when cipher fails selftest
When an skcipher constructed through crypto_givcipher_default fails its selftest, we'll loop forever trying to construct new skcipher objects but failing because it already exists. The crux of the issue is that once a givcipher fails the selftest, we'll ignore it on the next run through crypto_skcipher_lookup and attempt to construct a new givcipher. We should instead return an error to the caller if we find a givcipher that has failed the test. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/blkcipher.c')
-rw-r--r--crypto/blkcipher.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c
index d70a41c002df..90d26c91f4e9 100644
--- a/crypto/blkcipher.c
+++ b/crypto/blkcipher.c
@@ -521,7 +521,7 @@ static int crypto_grab_nivcipher(struct crypto_skcipher_spawn *spawn,
int err;
type = crypto_skcipher_type(type);
- mask = crypto_skcipher_mask(mask) | CRYPTO_ALG_GENIV;
+ mask = crypto_skcipher_mask(mask)| CRYPTO_ALG_GENIV;
alg = crypto_alg_mod_lookup(name, type, mask);
if (IS_ERR(alg))