mirror of
https://github.com/torvalds/linux.git
synced 2026-05-20 12:57:52 +02:00
The AES-CTR glue code avoids calling into the blkcipher API for the
tail portion of the walk, by comparing the remainder of walk.nbytes
modulo AES_BLOCK_SIZE with the residual nbytes, and jumping straight
into the tail processing block if they are equal. This tail processing
block checks whether nbytes != 0, and does nothing otherwise.
However, in case of an allocation failure in the blkcipher layer, we
may enter this code with walk.nbytes == 0, while nbytes > 0. In this
case, we should not dereference the source and destination pointers,
since they may be NULL. So instead of checking for nbytes != 0, check
for (walk.nbytes % AES_BLOCK_SIZE) != 0, which implies the former in
non-error conditions.
Fixes:
|
||
|---|---|---|
| .. | ||
| aes-ce-ccm-core.S | ||
| aes-ce-ccm-glue.c | ||
| aes-ce-cipher.c | ||
| aes-ce-setkey.h | ||
| aes-ce.S | ||
| aes-glue.c | ||
| aes-modes.S | ||
| aes-neon.S | ||
| crc32-arm64.c | ||
| ghash-ce-core.S | ||
| ghash-ce-glue.c | ||
| Kconfig | ||
| Makefile | ||
| sha1-ce-core.S | ||
| sha1-ce-glue.c | ||
| sha2-ce-core.S | ||
| sha2-ce-glue.c | ||