On Tue, Nov 21, 2023 at 12:52:44PM -0600, Gustavo A. R. Silva wrote: > 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 <s...@canb.auug.org.au> > Closes: > https://lore.kernel.org/linux-next/20231121131903.68a37...@canb.auug.org.au/ > Signed-off-by: Gustavo A. R. Silva <gustavo...@kernel.org> > --- > arch/powerpc/crypto/aes-gcm-p10-glue.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-)
Patch applied. Thanks. -- Email: Herbert Xu <herb...@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt