]> git.karo-electronics.de Git - linux-beck.git/commitdiff
xfs: bulletfproof xfs_qm_scall_trunc_qfiles()
authorEric Sandeen <sandeen@redhat.com>
Mon, 5 May 2014 07:27:06 +0000 (17:27 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 5 May 2014 07:27:06 +0000 (17:27 +1000)
Coverity noticed that if we sent junk into
xfs_qm_scall_trunc_qfiles(), we could get back an
uninitialized error value.  So sanitize the flags we
will accept, and initialize error anyway for good measure.

(This bug may have been introduced via c61a9e39).

Should resolve Coverity CID 1163872.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jie Liu <jeff.liu@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_qm_syscalls.c

index 3daf5ea1eb8d73989a4e199aaee4dd2364a98290..f35f13b4ea73f8225415a5601dadd4eb87f71c0b 100644 (file)
@@ -278,9 +278,10 @@ xfs_qm_scall_trunc_qfiles(
        xfs_mount_t     *mp,
        uint            flags)
 {
-       int             error;
+       int             error = EINVAL;
 
-       if (!xfs_sb_version_hasquota(&mp->m_sb) || flags == 0) {
+       if (!xfs_sb_version_hasquota(&mp->m_sb) || flags == 0 ||
+           (flags & ~XFS_DQ_ALLTYPES)) {
                xfs_debug(mp, "%s: flags=%x m_qflags=%x",
                        __func__, flags, mp->m_qflags);
                return XFS_ERROR(EINVAL);