Skip to content

Commit 3ef8665

Browse files
amir73iljankara
authored andcommitted
fanotify: mask out special event flags from ignored mask
The special event flags (FAN_ONDIR, FAN_EVENT_ON_CHILD) never had any meaning in ignored mask. Mask them out explicitly. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Amir Goldstein <[email protected]> Signed-off-by: Jan Kara <[email protected]>
1 parent d809daf commit 3ef8665

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

fs/notify/fanotify/fanotify_user.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,7 @@ static int do_fanotify_mark(int fanotify_fd, unsigned int flags, __u64 mask,
10401040
__kernel_fsid_t __fsid, *fsid = NULL;
10411041
u32 valid_mask = FANOTIFY_EVENTS | FANOTIFY_EVENT_FLAGS;
10421042
unsigned int mark_type = flags & FANOTIFY_MARK_TYPE_BITS;
1043+
bool ignored = flags & FAN_MARK_IGNORED_MASK;
10431044
unsigned int obj_type, fid_mode;
10441045
int ret;
10451046

@@ -1087,6 +1088,10 @@ static int do_fanotify_mark(int fanotify_fd, unsigned int flags, __u64 mask,
10871088
if (mask & ~valid_mask)
10881089
return -EINVAL;
10891090

1091+
/* Event flags (ONDIR, ON_CHILD) are meaningless in ignored mask */
1092+
if (ignored)
1093+
mask &= ~FANOTIFY_EVENT_FLAGS;
1094+
10901095
f = fdget(fanotify_fd);
10911096
if (unlikely(!f.file))
10921097
return -EBADF;

0 commit comments

Comments
 (0)