On 6/28/23 10:07, Min Li wrote:
On Mon, Jun 28, 2023 at 04:48:36PM +0000, Christoph Hellwig wrote:
quoted
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