lkml.org 
[lkml]   [2022]   [Apr]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.17 33/34] block/compat_ioctl: fix range check in BLKGETSIZE
    Date
    From: Khazhismel Kumykov <khazhy@google.com>

    [ Upstream commit ccf16413e520164eb718cf8b22a30438da80ff23 ]

    kernel ulong and compat_ulong_t may not be same width. Use type directly
    to eliminate mismatches.

    This would result in truncation rather than EFBIG for 32bit mode for
    large disks.

    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
    Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
    Link: https://lore.kernel.org/r/20220414224056.2875681-1-khazhy@google.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    block/ioctl.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/block/ioctl.c b/block/ioctl.c
    index 4a86340133e4..f8703db99c73 100644
    --- a/block/ioctl.c
    +++ b/block/ioctl.c
    @@ -629,7 +629,7 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg)
    return compat_put_long(argp,
    (bdev->bd_disk->bdi->ra_pages * PAGE_SIZE) / 512);
    case BLKGETSIZE:
    - if (bdev_nr_sectors(bdev) > ~0UL)
    + if (bdev_nr_sectors(bdev) > ~(compat_ulong_t)0)
    return -EFBIG;
    return compat_put_ulong(argp, bdev_nr_sectors(bdev));

    --
    2.35.1
    \
     
     \ /
      Last update: 2022-04-19 20:16    [W:4.031 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site