Jelajahi Sumber

fs/notify/fanotify/fanotify_user.c: fix FAN_MARK_FLUSH flag checking

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>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Heinrich Schuchardt 11 tahun lalu
induk
melakukan
cc299a98eb
1 mengubah file dengan 3 tambahan dan 0 penghapusan
  1. 3 0
      fs/notify/fanotify/fanotify_user.c

+ 3 - 0
fs/notify/fanotify/fanotify_user.c

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