projects/linux·commit 8996eafd

crypto: ahash - ensure statesize is non-zero

8996eafd · Russell King <[email protected]> · 2015-10-09 20:43:33 +01:00

Unlike shash algorithms, ahash drivers must implement export
and import as their descriptors may contain hardware state and
cannot be exported as is.  Unfortunately some ahash drivers did
not provide them and end up causing crashes with algif_hash.

This patch adds a check to prevent these drivers from registering
ahash algorithms until they are fixed.

Cc: [email protected]
Signed-off-by: Russell King <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
Commit
8996eafdcbad149ac0f772fb1649fbb75c482a6a
Parents
92b27907

Changes

1 files changed · +2 −1

FileStatusAddDelContent
crypto/ahash.cmodified+2−1View file

crypto/ahash.c

View file
diff --git a/crypto/ahash.c b/crypto/ahash.c
index 8acb886..9c1dc8d 100644
--- a/crypto/ahash.c
+++ b/crypto/ahash.c
@@ -544,7 +544,8 @@ static int ahash_prepare_alg(struct ahash_alg *alg)
struct crypto_alg *base = &alg->halg.base;
if (alg->halg.digestsize > PAGE_SIZE / 8 ||
- alg->halg.statesize > PAGE_SIZE / 8)
+ alg->halg.statesize > PAGE_SIZE / 8 ||
+ alg->halg.statesize == 0)
return -EINVAL;
base->cra_type = &crypto_ahash_type;