diff options
Diffstat (limited to 'crypto/algapi.c')
| -rw-r--r-- | crypto/algapi.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/crypto/algapi.c b/crypto/algapi.c index 2a0271b5f62a..c0755cf4f53f 100644 --- a/crypto/algapi.c +++ b/crypto/algapi.c @@ -10,6 +10,7 @@   *   */ +#include <crypto/algapi.h>  #include <linux/err.h>  #include <linux/errno.h>  #include <linux/fips.h> @@ -59,6 +60,15 @@ static int crypto_check_alg(struct crypto_alg *alg)  	if (alg->cra_blocksize > PAGE_SIZE / 8)  		return -EINVAL; +	if (!alg->cra_type && (alg->cra_flags & CRYPTO_ALG_TYPE_MASK) == +			       CRYPTO_ALG_TYPE_CIPHER) { +		if (alg->cra_alignmask > MAX_CIPHER_ALIGNMASK) +			return -EINVAL; + +		if (alg->cra_blocksize > MAX_CIPHER_BLOCKSIZE) +			return -EINVAL; +	} +  	if (alg->cra_priority < 0)  		return -EINVAL;  |