mirror of https://gitee.com/openkylin/linux.git
2db34e78f1
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:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
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 | ||
sha1-ce-core.S | ||
sha1-ce-glue.c | ||
sha2-ce-core.S | ||
sha2-ce-glue.c |