linux-mainline/fs/nfs
Kees Cook cf0d7e7f45 NFS: Avoid memcpy() run-time warning for struct sockaddr overflows
The 'nfs_server' and 'mount_server' structures include a union of
'struct sockaddr' (with the older 16 bytes max address size) and
'struct sockaddr_storage' which is large enough to hold all the
supported sa_family types (128 bytes max size). The runtime memcpy()
buffer overflow checker is seeing attempts to write beyond the 16
bytes as an overflow, but the actual expected size is that of 'struct
sockaddr_storage'. Plumb the use of 'struct sockaddr_storage' more
completely through-out NFS, which results in adjusting the memcpy()
buffers to the correct union members. Avoids this false positive run-time
warning under CONFIG_FORTIFY_SOURCE:

  memcpy: detected field-spanning write (size 28) of single field "&ctx->nfs_server.address" at fs/nfs/namespace.c:178 (size 16)

Reported-by: kernel test robot <yujie.liu@intel.com>
Link: https://lore.kernel.org/all/202210110948.26b43120-yujie.liu@intel.com
Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Anna Schumaker <anna@kernel.org>
Cc: linux-nfs@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2022-10-27 15:52:10 -04:00
..
blocklayout NFS client updates for Linux 5.20 2022-08-10 14:04:32 -07:00
filelayout
flexfilelayout NFSv4/flexfiles: Cancel I/O if the layout is recalled or revoked 2022-10-06 09:52:09 -04:00
cache_lib.c
cache_lib.h
callback_proc.c
callback_xdr.c SUNRPC: Parametrize how much of argsize should be zeroed 2022-09-26 14:02:42 -04:00
callback.c
callback.h
client.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
delegation.c
delegation.h
dir.c nfs: Remove redundant null checks before kfree 2022-10-27 15:52:10 -04:00
direct.c NFS client updates for Linux 5.20 2022-08-10 14:04:32 -07:00
dns_resolve.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
dns_resolve.h NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
export.c
file.c NFS Client Updates for Linux 6.1 2022-10-13 09:58:42 -07:00
fs_context.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
fscache.c
fscache.h
getroot.c
inode.c NFS Client Updates for Linux 6.1 2022-10-13 09:58:42 -07:00
internal.h NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
io.c
iostat.h
Kconfig
Makefile
mount_clnt.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
namespace.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
netns.h
nfs2super.c
nfs2xdr.c
nfs3_fs.h
nfs3acl.c
nfs3client.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
nfs3proc.c freezer,sched: Rewrite core freezer logic 2022-09-07 21:53:50 +02:00
nfs3super.c
nfs3xdr.c
nfs4_fs.h NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
nfs4client.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
nfs4file.c NFSv4.2 fix problems with __nfs42_ssc_open 2022-08-19 20:31:57 -04:00
nfs4getroot.c
nfs4idmap.c nfs: remove unnecessary (void*) conversions. 2022-10-03 11:26:36 -04:00
nfs4idmap.h
nfs4namespace.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
nfs4proc.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c NFS Client Updates for Linux 6.1 2022-10-13 09:58:42 -07:00
nfs4super.c
nfs4sysctl.c
nfs4trace.c
nfs4trace.h NFSv4.2: Add a tracepoint for listxattr 2022-10-05 15:47:16 -04:00
nfs4xdr.c
nfs42.h
nfs42proc.c NFS Client Updates for Linux 6.1 2022-10-13 09:58:42 -07:00
nfs42xattr.c nfs: remove unnecessary (void*) conversions. 2022-10-03 11:26:36 -04:00
nfs42xdr.c NFSv4.2: Add special handling for LISTXATTR receiving NFS4ERR_NOXATTR 2022-10-05 15:29:23 -04:00
nfs.h
nfsroot.c NFS: move from strlcpy with unused retval to strscpy 2022-10-03 11:26:36 -04:00
nfstrace.c
nfstrace.h NFS: Improve readpage/writepage tracing 2022-08-09 14:11:34 -04:00
pagelist.c
pnfs_dev.c
pnfs_nfs.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
pnfs.c NFS Client Updates for Linux 6.1 2022-10-13 09:58:42 -07:00
pnfs.h NFSv4/flexfiles: Cancel I/O if the layout is recalled or revoked 2022-10-06 09:52:09 -04:00
proc.c
read.c
super.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
symlink.c
sysctl.c
sysfs.c
sysfs.h
unlink.c
write.c NFS client bugfixes for Linux 6.0 2022-09-12 17:53:46 -04:00