Commit 6bff7ecc authored by Lino Sanfilippo's avatar Lino Sanfilippo Committed by Eric Paris

Ensure FMODE_NONOTIFY is not set by userspace

    In fsnotify_open() ensure that FMODE_NONOTIFY is never set by userspace.
    Also always call fsnotify_parent and fsnotify.
Signed-off-by: default avatarLino Sanfilippo <LinoSanfilippo@gmx.de>
Signed-off-by: default avatarEric Paris <eparis@redhat.com>
parent 1a5cea72
...@@ -235,10 +235,11 @@ static inline void fsnotify_open(struct file *file) ...@@ -235,10 +235,11 @@ static inline void fsnotify_open(struct file *file)
if (S_ISDIR(inode->i_mode)) if (S_ISDIR(inode->i_mode))
mask |= FS_ISDIR; mask |= FS_ISDIR;
if (!(file->f_mode & FMODE_NONOTIFY)) { /* FMODE_NONOTIFY must never be set from user */
fsnotify_parent(path, NULL, mask); file->f_mode &= ~FMODE_NONOTIFY;
fsnotify(inode, mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
} fsnotify_parent(path, NULL, mask);
fsnotify(inode, mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment