From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> The comment here says that it is checking for invalid bits. But, the mask is *actually* checking to ensure that _any_ valid bit is set, which is quite different. Add the actual check which was intended. Retain the existing check because it actually does something useful: ensure that some inotify bits are being added to the watch. Plus, this is existing behavior which would be nice to preserve. I did a quick sniff test that inotify functions and that my 'inotify-tools' package passes 'make check'. Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Cc: John McCutchan <john@xxxxxxxxxxxxxxxxx> (maintainer:INOTIFY) Cc: Robert Love <rlove@xxxxxxxxx> (maintainer:INOTIFY) Cc: Eric Paris <eparis@xxxxxxxxxxxxxx> (maintainer:INOTIFY) Cc: linux-kernel@xxxxxxxxxxxxxxx (open list) Cc: stable@xxxxxxxxxxxxxxx --- b/fs/notify/inotify/inotify_user.c | 3 +++ 1 file changed, 3 insertions(+) diff -puN fs/notify/inotify/inotify_user.c~inotify-EINVAL-on-invalid-bit fs/notify/inotify/inotify_user.c --- a/fs/notify/inotify/inotify_user.c~inotify-EINVAL-on-invalid-bit 2015-06-26 13:33:30.277219285 -0700 +++ b/fs/notify/inotify/inotify_user.c 2015-06-26 13:35:19.026122033 -0700 @@ -707,6 +707,9 @@ SYSCALL_DEFINE3(inotify_add_watch, int, unsigned flags = 0; /* don't allow invalid bits: we don't want flags set */ + if (unlikely(mask & ~ALL_INOTIFY_BITS)) + return -EINVAL; + /* require at least one valid bit set in the mask */ if (unlikely(!(mask & ALL_INOTIFY_BITS))) return -EINVAL; _ -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html