]> www.infradead.org Git - users/jedix/linux-maple.git/commit
block: fix integer overflow in BLKSECDISCARD
authorAlexey Dobriyan <adobriyan@gmail.com>
Tue, 3 Sep 2024 19:48:19 +0000 (22:48 +0300)
committerJens Axboe <axboe@kernel.dk>
Wed, 4 Sep 2024 14:01:30 +0000 (08:01 -0600)
commit697ba0b6ec4ae04afb67d3911799b5e2043b4455
tree38022d38f2b195c3285c41326b6011ba7431d31b
parent2be6190cd75cd2029ced5ccef057e15939f48c4a
block: fix integer overflow in BLKSECDISCARD

I independently rediscovered

commit 22d24a544b0d49bbcbd61c8c0eaf77d3c9297155
block: fix overflow in blk_ioctl_discard()

but for secure erase.

Same problem:

uint64_t r[2] = {512, 18446744073709551104ULL};
ioctl(fd, BLKSECDISCARD, r);

will enter near infinite loop inside blkdev_issue_secure_erase():

a.out: attempt to access beyond end of device
loop0: rw=5, sector=3399043073, nr_sectors = 1024 limit=2048
bio_check_eod: 3286214 callbacks suppressed

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Link: https://lore.kernel.org/r/9e64057f-650a-46d1-b9f7-34af391536ef@p183
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/ioctl.c