lkml.org 
[lkml]   [2012]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/3] Check node type at the beginning of mknodat
    Date
    We make sure node is not directory at beginning of mknodat, which is in 
    effect included in a latter may_mknod check.

    Move may_mknod up to replace directory check. We can also avoid cleanup
    if check fails.

    Signed-off-by: Guo Chao <yan@linux.vnet.ibm.com>
    ---
    fs/namei.c | 9 ++++-----
    1 file changed, 4 insertions(+), 5 deletions(-)

    diff --git a/fs/namei.c b/fs/namei.c
    index 8dccfcc..05b9053 100644
    --- a/fs/namei.c
    +++ b/fs/namei.c
    @@ -2910,8 +2910,9 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode,
    struct path path;
    int error;

    - if (S_ISDIR(mode))
    - return -EPERM;
    + error = may_mknod(mode);
    + if (error)
    + return error;

    dentry = user_path_create(dfd, filename, &path, 0);
    if (IS_ERR(dentry))
    @@ -2919,9 +2920,7 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode,

    if (!IS_POSIXACL(path.dentry->d_inode))
    mode &= ~current_umask();
    - error = may_mknod(mode);
    - if (error)
    - goto out_dput;
    +
    error = mnt_want_write(path.mnt);
    if (error)
    goto out_dput;
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-06-29 06:01    [W:0.022 / U:2.364 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site