Re: [PATCH v3] block: add check that partition length needs to be aligned with block size

From: Chaitanya Kulkarni
Date: Wed Jun 28 2023 - 21:04:27 EST


On 6/28/23 10:07, Min Li wrote:
> On Mon, Jun 28, 2023 at 04:48:36PM +0000, Christoph Hellwig wrote:
>> They are long long in the UAPI, which is weird but has been that way
>> for a long time. So I think we need checks for negative values
>> before they are shifted and converted to a sector_t.
> Do you mean that we need to check if p.start and p.length are negative?
>
> Thanks for your reply
>
> Min li

I think so, from include/uapi/linux/blkpg.h:-

/* The data structure for ADD_PARTITION and DEL_PARTITION */
struct blkpg_partition {
        long long start;                /* starting offset in bytes */
        long long length;               /* length in bytes */
        int pno;                        /* partition number */
        char devname[BLKPG_DEVNAMELTH]; /* unused / ignored */
        char volname[BLKPG_VOLNAMELTH]; /* unused / ignore */
};

so start and length can take -ve, hence in your patch we need to error
out instead inviting overflow bugs right after or before IS_ALIGNED
check.

-ck