]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nfsd4: buffer-length check for SUPPATTR_EXCLCREAT
authorJ. Bruce Fields <bfields@redhat.com>
Tue, 28 Jan 2014 21:05:15 +0000 (16:05 -0500)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 30 Apr 2014 15:23:23 +0000 (16:23 +0100)
commit de3997a7eeb9ea286b15879fdf8a95aae065b4f7 upstream.

This was an omission from 8c18f2052e756e7d5dea712fc6e7ed70c00e8a39
"nfsd41: SUPPATTR_EXCLCREAT attribute".

Cc: Benny Halevy <bhalevy@primarydata.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/nfsd/nfs4xdr.c

index ade5316d0cf54373c99d5f6ee21dcd0bb6f2d62a..4835b90d418087d1389749ee5d3debb9133da7ef 100644 (file)
@@ -2413,6 +2413,8 @@ out_acl:
                WRITE64(stat.ino);
        }
        if (bmval2 & FATTR4_WORD2_SUPPATTR_EXCLCREAT) {
+               if ((buflen -= 16) < 0)
+                       goto out_resource;
                WRITE32(3);
                WRITE32(NFSD_SUPPATTR_EXCLCREAT_WORD0);
                WRITE32(NFSD_SUPPATTR_EXCLCREAT_WORD1);