From: Ard Biesheuvel Date: Tue, 5 Nov 2019 14:01:00 +0000 (+0200) Subject: crypto: omap-aes - reject invalid input sizes for block modes X-Git-Tag: block-5.6-2020-02-05~44^2~200 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=dbb326fd009346061e5083c3a0d2d1a2fa348e04;p=linux-2.6-block.git crypto: omap-aes - reject invalid input sizes for block modes Block modes such as ECB and CBC only support input sizes that are a round multiple of the block size, so align with the generic code which returns -EINVAL when encountering inputs that violate this rule. Signed-off-by: Ard Biesheuvel Reviewed-by: Tero Kristo Tested-by: Tero Kristo Signed-off-by: Herbert Xu --- diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c index de05b35283bf..067f4cd7c005 100644 --- a/drivers/crypto/omap-aes.c +++ b/drivers/crypto/omap-aes.c @@ -525,6 +525,9 @@ static int omap_aes_crypt(struct skcipher_request *req, unsigned long mode) struct omap_aes_dev *dd; int ret; + if ((req->cryptlen % AES_BLOCK_SIZE) && !(mode & FLAGS_CTR)) + return -EINVAL; + pr_debug("nbytes: %d, enc: %d, cbc: %d\n", req->cryptlen, !!(mode & FLAGS_ENCRYPT), !!(mode & FLAGS_CBC));