nbd: fix possible overflow on 'first_minor' in nbd_dev_add()
authorZhang Wensheng <zhangwensheng5@huawei.com>
Thu, 10 Mar 2022 09:32:24 +0000 (17:32 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Apr 2022 18:58:59 +0000 (20:58 +0200)
commit5142720dbe51befeb25f204f912ef1ad93fba343
treea6764a891ddb0422d812dc7c86ed48ecc81dfe6b
parent64742cf82dec2d72d260e6ffdfceaee739353d3f
nbd: fix possible overflow on 'first_minor' in nbd_dev_add()

[ Upstream commit 6d35d04a9e18990040e87d2bbf72689252669d54 ]

When 'index' is a big numbers, it may become negative which forced
to 'int'. then 'index << part_shift' might overflow to a positive
value that is not greater than '0xfffff', then sysfs might complains
about duplicate creation. Because of this, move the 'index' judgment
to the front will fix it and be better.

Fixes: b0d9111a2d53 ("nbd: use an idr to keep track of nbd devices")
Fixes: 940c264984fd ("nbd: fix possible overflow for 'first_minor' in nbd_dev_add()")
Signed-off-by: Zhang Wensheng <zhangwensheng5@huawei.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Link: https://lore.kernel.org/r/20220310093224.4002895-1-zhangwensheng5@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/block/nbd.c