diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2009-02-18 20:33:55 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2009-02-18 21:20:06 +0800 |
commit | b170a137f467ea951c3f256da1b911545acf3ffd (patch) | |
tree | b8f65dc4e1b5b6cd9bb144698c7007b7483a7c80 /crypto/blkcipher.c | |
parent | 3f683d6175748ef9daf4698d9ef5a488dd037063 (diff) | |
download | linux-b170a137f467ea951c3f256da1b911545acf3ffd.tar.gz linux-b170a137f467ea951c3f256da1b911545acf3ffd.tar.bz2 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.c | 2 |
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)) |