lkml.org 
[lkml]   [2021]   [Sep]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 010/380] blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
    Date
    From: Niklas Cassel <niklas.cassel@wdc.com>

    commit ead3b768bb51259e3a5f2287ff5fc9041eb6f450 upstream.

    Zone management send operations (BLKRESETZONE, BLKOPENZONE, BLKCLOSEZONE
    and BLKFINISHZONE) should be allowed under the same permissions as write().
    (write() does not require CAP_SYS_ADMIN).

    Additionally, other ioctls like BLKSECDISCARD and BLKZEROOUT only check if
    the fd was successfully opened with FMODE_WRITE.
    (They do not require CAP_SYS_ADMIN).

    Currently, zone management send operations require both CAP_SYS_ADMIN
    and that the fd was successfully opened with FMODE_WRITE.

    Remove the CAP_SYS_ADMIN requirement, so that zone management send
    operations match the access control requirement of write(), BLKSECDISCARD
    and BLKZEROOUT.

    Fixes: 3ed05a987e0f ("blk-zoned: implement ioctls")
    Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
    Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
    Reviewed-by: Aravind Ramesh <aravind.ramesh@wdc.com>
    Reviewed-by: Adam Manzanares <a.manzanares@samsung.com>
    Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Cc: stable@vger.kernel.org # v4.10+
    Link: https://lore.kernel.org/r/20210811110505.29649-2-Niklas.Cassel@wdc.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    block/blk-zoned.c | 3 ---
    1 file changed, 3 deletions(-)

    --- a/block/blk-zoned.c
    +++ b/block/blk-zoned.c
    @@ -349,9 +349,6 @@ int blkdev_zone_mgmt_ioctl(struct block_
    if (!blk_queue_is_zoned(q))
    return -ENOTTY;

    - if (!capable(CAP_SYS_ADMIN))
    - return -EACCES;
    -
    if (!(mode & FMODE_WRITE))
    return -EBADF;


    \
     
     \ /
      Last update: 2021-09-16 18:37    [W:2.814 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site