]> git.baikalelectronics.ru Git - kernel.git/commit
NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes
authorChuck Lever <chuck.lever@oracle.com>
Tue, 25 Jan 2022 20:59:57 +0000 (15:59 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Wed, 9 Feb 2022 14:23:38 +0000 (09:23 -0500)
commita53d6f4d3892d786f51170eda438c78202646f92
treeeb1574dc60f5c45ea560db620f6dc74c40258ce6
parent8adc4fa50cff200e9ea5dca38ea21ebc102c6fe5
NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes

iattr::ia_size is a loff_t, so these NFSv3 procedures must be
careful to deal with incoming client size values that are larger
than s64_max without corrupting the value.

Silently capping the value results in storing a different value
than the client passed in which is unexpected behavior, so remove
the min_t() check in decode_sattr3().

Note that RFC 1813 permits only the WRITE procedure to return
NFS3ERR_FBIG. We believe that NFSv3 reference implementations
also return NFS3ERR_FBIG when ia_size is too large.

Cc: stable@vger.kernel.org
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs3xdr.c