lkml.org 
[lkml]   [2011]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH v3][RESEND] Check for immutable/append flag in fallocate path
    From: Marco Stornelli <marco.stornelli@gmail.com>

    In the fallocate path the kernel doesn't check for the immutable/append
    flag. It's possible to have a race condition in this scenario: an
    application open a file in read/write and it does something, meanwhile
    root set the immutable flag on the file, the application at that point
    can call fallocate with success. In addition, we don't allow to do any
    unreserve operation on an append only file but only the reserve one.

    Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
    ---
    ChangeLog:
    v3: Modified do_fallocate instead of every single fs
    v2: Added the check for append-only file for XFS
    v1: First draft

    --- linux-2.6.38-rc7/fs/open.c.orig 2011-03-01 22:55:12.000000000 +0100
    +++ linux-2.6.38-rc7/fs/open.c 2011-03-04 15:28:43.000000000 +0100
    @@ -233,6 +233,14 @@ int do_fallocate(struct file *file, int

    if (!(file->f_mode & FMODE_WRITE))
    return -EBADF;
    +
    + /* It's not possible punch hole on append only file */
    + if (mode & FALLOC_FL_PUNCH_HOLE && IS_APPEND(inode))
    + return -EPERM;
    +
    + if (IS_IMMUTABLE(inode))
    + return -EPERM;
    +
    /*
    * Revalidate the write permissions, in case security policy has
    * changed since the files were opened.


    \
     
     \ /
      Last update: 2011-03-06 11:19    [W:4.093 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site