]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
NFSD: prevent underflow in nfssvc_decode_writeargs()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 15 Mar 2022 10:30:09 +0000 (13:30 +0300)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 20 May 2022 12:37:27 +0000 (14:37 +0200)
BugLink: https://bugs.launchpad.net/bugs/1969110
commit 184416d4b98509fb4c3d8fc3d6dc1437896cc159 upstream.

Smatch complains:

fs/nfsd/nfsxdr.c:341 nfssvc_decode_writeargs()
warn: no lower bound on 'args->len'

Change the type to unsigned to prevent this issue.

Cc: stable@vger.kernel.org
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 614a61e1592051cc42d3c38f899c9f7bdaad8a1d)
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
fs/nfsd/nfsproc.c
fs/nfsd/xdr.h

index 312fd289be583d045e90a286ce0e0485a87874bb..9700ad433b49860320bcfce497fbd48ace16f061 100644 (file)
@@ -230,7 +230,7 @@ nfsd_proc_write(struct svc_rqst *rqstp)
        unsigned long cnt = argp->len;
        unsigned int nvecs;
 
-       dprintk("nfsd: WRITE    %s %d bytes at %d\n",
+       dprintk("nfsd: WRITE    %s %u bytes at %d\n",
                SVCFH_fmt(&argp->fh),
                argp->len, argp->offset);
 
index 80fd6d7f3404a6fde68860c23ecadadde34e772e..863a35f24910a4b49c409f9362f5791a4aeadf95 100644 (file)
@@ -32,7 +32,7 @@ struct nfsd_readargs {
 struct nfsd_writeargs {
        svc_fh                  fh;
        __u32                   offset;
-       int                     len;
+       __u32                   len;
        struct xdr_buf          payload;
 };