smb: client: memcpy() with surrounding object base address
authorKees Cook <kees@kernel.org>
Sun, 17 Nov 2024 11:32:09 +0000 (03:32 -0800)
committerSteve French <stfrench@microsoft.com>
Mon, 18 Nov 2024 04:20:54 +0000 (22:20 -0600)
commitf69b0187f8745a7a9584f6b13f5e792594b88b2e
tree25c167d03b2a675c697b858d016ae126a3637175
parent6c9903c330ab91d83b7be6102847e5eabf81b710
smb: client: memcpy() with surrounding object base address

Like commit f1f047bd7ce0 ("smb: client: Fix -Wstringop-overflow issues"),
adjust the memcpy() destination address to be based off the surrounding
object rather than based off the 4-byte "Protocol" member. This avoids a
build-time warning when compiling under CONFIG_FORTIFY_SOURCE with GCC 15:

In function 'fortify_memcpy_chk',
    inlined from 'CIFSSMBSetPathInfo' at ../fs/smb/client/cifssmb.c:5358:2:
../include/linux/fortify-string.h:571:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning]
  571 |                         __write_overflow_field(p_size_field, size);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Kees Cook <kees@kernel.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifssmb.c