]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
fs/notify/fanotify/fanotify_user.c: fix FAN_MARK_FLUSH flag checking
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 22 May 2014 00:42:25 +0000 (10:42 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 22 May 2014 00:42:25 +0000 (10:42 +1000)
If fanotify_mark is called with illegal value of arguments flags and marks
it usually returns EINVAL.

When fanotify_mark is called with FAN_MARK_FLUSH the argument flags is not
checked for irrelevant flags like FAN_MARK_IGNORED_MASK.

The patch removes this inconsistency.

If an irrelevant flag is set error EINVAL is returned.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/notify/fanotify/fanotify_user.c

index f6ac6a2fa91ed994f816f6644a5724be46d9cbb0..9163a6ed67d2695f4a38f9d05a35b5aa4e9ecf94 100644 (file)
@@ -776,7 +776,10 @@ SYSCALL_DEFINE5(fanotify_mark, int, fanotify_fd, unsigned int, flags,
        case FAN_MARK_REMOVE:
                if (!mask)
                        return -EINVAL;
+               break;
        case FAN_MARK_FLUSH:
+               if (flags & ~(FAN_MARK_MOUNT | FAN_MARK_FLUSH))
+                       return -EINVAL;
                break;
        default:
                return -EINVAL;