lkml.org 
[lkml]   [2016]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 05/21] block_dev: Check permissions towards block device inode when mounting
    Date
    Unprivileged users should not be able to mount block devices when
    they lack sufficient privileges towards the block device inode.
    Update blkdev_get_by_path() to validate that the user has the
    required access to the inode at the specified path. The check
    will be skipped for CAP_SYS_ADMIN, so privileged mounts will
    continue working as before.

    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
    ---
    fs/block_dev.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/fs/block_dev.c b/fs/block_dev.c
    index e9b937845bdb..2007040afb7b 100644
    --- a/fs/block_dev.c
    +++ b/fs/block_dev.c
    @@ -1429,9 +1429,14 @@ struct block_device *blkdev_get_by_path(const char *path, fmode_t mode,
    void *holder)
    {
    struct block_device *bdev;
    + int perm = 0;
    int err;

    - bdev = lookup_bdev(path, 0);
    + if (mode & FMODE_READ)
    + perm |= MAY_READ;
    + if (mode & FMODE_WRITE)
    + perm |= MAY_WRITE;
    + bdev = lookup_bdev(path, perm);
    if (IS_ERR(bdev))
    return bdev;

    --
    1.9.1
    \
     
     \ /
      Last update: 2016-04-22 18:21    [W:2.440 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site