mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-09-28 19:20:30 +00:00
The compiler doesn't know that `32` is an offset into the Hash table:
56 struct Hash_ctx {
57 u8 H[16]; /* subkey */
58 u8 Htable[256]; /* Xi, Hash table(offset 32) */
59 };
So, it legitimately complains about a potential out-of-bounds issue
if `256 bytes` are accessed in `htable` (this implies going
`32 bytes` beyond the boundaries of `Htable`):
arch/powerpc/crypto/aes-gcm-p10-glue.c: In function 'gcmp10_init':
arch/powerpc/crypto/aes-gcm-p10-glue.c:120:9: error: 'gcm_init_htable' accessing 256 bytes in a region of size 224 [-Werror=stringop-overflow=]
120 | gcm_init_htable(hash->Htable+32, hash->H);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/crypto/aes-gcm-p10-glue.c:120:9: note: referencing argument 1 of type 'unsigned char[256]'
arch/powerpc/crypto/aes-gcm-p10-glue.c:120:9: note: referencing argument 2 of type 'unsigned char[16]'
arch/powerpc/crypto/aes-gcm-p10-glue.c:40:17: note: in a call to function 'gcm_init_htable'
40 | asmlinkage void gcm_init_htable(unsigned char htable[256], unsigned char Xi[16]);
| ^~~~~~~~~~~~~~~
Address this by avoiding specifying the size of `htable` in the function
prototype; and just for consistency, do the same for parameter `Xi`.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/linux-next/20231121131903.68a37932@canb.auug.org.au/
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
History
|
|
|---|---|---|
| .. | ||
| .gitignore | ||
| aes-gcm-p10-glue.c | ||
| aes-gcm-p10.S | ||
| aes-spe-core.S | ||
| aes-spe-glue.c | ||
| aes-spe-keys.S | ||
| aes-spe-modes.S | ||
| aes-spe-regs.h | ||
| aes-tab-4k.S | ||
| aesp10-ppc.pl | ||
| chacha-p10-glue.c | ||
| chacha-p10le-8x.S | ||
| crc-vpmsum_test.c | ||
| crc32-vpmsum_core.S | ||
| crc32c-vpmsum_asm.S | ||
| crc32c-vpmsum_glue.c | ||
| crct10dif-vpmsum_asm.S | ||
| crct10dif-vpmsum_glue.c | ||
| ghashp10-ppc.pl | ||
| Kconfig | ||
| Makefile | ||
| md5-asm.S | ||
| md5-glue.c | ||
| poly1305-p10-glue.c | ||
| poly1305-p10le_64.S | ||
| ppc-xlate.pl | ||
| sha1-powerpc-asm.S | ||
| sha1-spe-asm.S | ||
| sha1-spe-glue.c | ||
| sha1.c | ||
| sha256-spe-asm.S | ||
| sha256-spe-glue.c | ||