kernel_samsung_a53x/fs/nfsd
Chuck Lever 8e3fa632d4 NFSD: Fix ia_size underflow
[ Upstream commit e6faac3f58c7c4176b66f63def17a34232a17b0e ]

iattr::ia_size is a loff_t, which is a signed 64-bit type. NFSv3 and
NFSv4 both define file size as an unsigned 64-bit type. Thus there
is a range of valid file size values an NFS client can send that is
already larger than Linux can handle.

Currently decode_fattr4() dumps a full u64 value into ia_size. If
that value happens to be larger than S64_MAX, then ia_size
underflows. I'm about to fix up the NFSv3 behavior as well, so let's
catch the underflow in the common code path: nfsd_setattr().

Cc: stable@vger.kernel.org
[ cel: context adjusted, 2f221d6f7b88 has not been applied ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:53 +01:00
..
acl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
auth.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
auth.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blocklayout.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blocklayoutxdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blocklayoutxdr.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cache.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
current_stateid.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
export.c nfsd: report per-export stats 2024-11-19 12:27:31 +01:00
export.h nfsd: report per-export stats 2024-11-19 12:27:31 +01:00
fault_inject.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
filecache.c NFSD: Rename boot verifier functions 2024-11-19 12:27:52 +01:00
filecache.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flexfilelayout.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flexfilelayoutxdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flexfilelayoutxdr.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
idmap.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig NFSv4.2: Remove ifdef CONFIG_NFSD from NFSv4.2 client SSC code. 2024-11-19 12:27:37 +01:00
lockd.c Keep read and write fds with each nlm_file 2024-11-19 12:27:44 +01:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netns.h NFSD: Rename boot verifier functions 2024-11-19 12:27:52 +01:00
nfs2acl.c SUNRPC: Change return value type of .pc_encode 2024-11-19 12:27:48 +01:00
nfs3acl.c SUNRPC: Change return value type of .pc_encode 2024-11-19 12:27:48 +01:00
nfs3proc.c NFSD: Fix the behavior of READ near OFFSET_MAX 2024-11-19 12:27:53 +01:00
nfs3xdr.c NFSD: Move fill_pre_wcc() and fill_post_wcc() 2024-11-19 12:27:53 +01:00
nfs4acl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4callback.c nfsd: rpc_peeraddr2str needs rcu lock 2024-11-19 12:27:39 +01:00
nfs4idmap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4layouts.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4proc.c NFSD: Fix the behavior of READ near OFFSET_MAX 2024-11-19 12:27:53 +01:00
nfs4recover.c nfsd: Log client tracking type log message as info instead of warning 2024-11-19 12:27:36 +01:00
nfs4state.c nfsd: fix crash on COPY_NOTIFY with special stateid 2024-11-19 12:27:53 +01:00
nfs4xdr.c NFSD: Fix the behavior of READ near OFFSET_MAX 2024-11-19 12:27:53 +01:00
nfscache.c NFSD: Remove be32_to_cpu() from DRC hash function 2024-11-19 12:27:51 +01:00
nfsctl.c NFSD: Clean up the nfsd_net::nfssvc_boot field 2024-11-19 12:27:52 +01:00
nfsd.h SUNRPC/NFSD: clean up get/put functions. 2024-11-19 12:27:50 +01:00
nfsfh.c NFSD: Move fill_pre_wcc() and fill_post_wcc() 2024-11-19 12:27:53 +01:00
nfsfh.h NFSD: Move fill_pre_wcc() and fill_post_wcc() 2024-11-19 12:27:53 +01:00
nfsproc.c nfsd: Retry once in nfsd_open on an -EOPENSTALE return 2024-11-19 12:27:52 +01:00
nfssvc.c NFSD: Rename boot verifier functions 2024-11-19 12:27:52 +01:00
nfsxdr.c SUNRPC: Change return value type of .pc_encode 2024-11-19 12:27:48 +01:00
pnfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
state.h nfsd4: add refcount for nfsd4_blocked_lock 2024-11-19 12:27:52 +01:00
stats.c nfsd: make nfsd_stats.th_cnt atomic_t 2024-11-19 12:27:50 +01:00
stats.h nfsd: make nfsd_stats.th_cnt atomic_t 2024-11-19 12:27:50 +01:00
trace.c NFSD: Add SPDX header for fs/nfsd/trace.c 2024-11-19 12:27:20 +01:00
trace.h NFSD: Trace boot verifier resets 2024-11-19 12:27:52 +01:00
vfs.c NFSD: Fix ia_size underflow 2024-11-19 12:27:53 +01:00
vfs.h nfsd: Add a tracepoint for errors in nfsd4_clone_file_range() 2024-11-19 12:27:52 +01:00
xdr.h SUNRPC: Change return value type of .pc_encode 2024-11-19 12:27:48 +01:00
xdr3.h SUNRPC: Change return value type of .pc_encode 2024-11-19 12:27:48 +01:00
xdr4.h SUNRPC: Change return value type of .pc_encode 2024-11-19 12:27:48 +01:00
xdr4cb.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00