• D
    inotify: actually check for invalid bits in sys_inotify_add_watch() · d30e2c05
    Dave Hansen 提交于
    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.
    
    Without this check, an unexpected bit could get set on an inotify object.
    Since these bits are also interpreted by the fsnotify/dnotify code, there
    is the potential for an object to be mishandled inside the kernel.  For
    instance, can we be sure that setting the dnotify flag FS_DN_RENAME on an
    inotify watch is harmless?
    
    Add the actual check which was intended.  Retain the existing 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: NDave Hansen <dave.hansen@linux.intel.com>
    Cc: John McCutchan <john@johnmccutchan.com>
    Cc: Robert Love <rlove@rlove.org>
    Cc: Eric Paris <eparis@parisplace.org>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    d30e2c05
inotify_user.c 20.9 KB