md/raid5: cap worker count
static checker reports a potential integer overflow. Cap the worker count to avoid the overflow. Reported:-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Shaohua Li <shli@fb.com>
This commit is contained in:
parent
c4d6a1b8e8
commit
7d5d7b5058
|
@ -6575,14 +6575,17 @@ static ssize_t
|
||||||
raid5_store_group_thread_cnt(struct mddev *mddev, const char *page, size_t len)
|
raid5_store_group_thread_cnt(struct mddev *mddev, const char *page, size_t len)
|
||||||
{
|
{
|
||||||
struct r5conf *conf;
|
struct r5conf *conf;
|
||||||
unsigned long new;
|
unsigned int new;
|
||||||
int err;
|
int err;
|
||||||
struct r5worker_group *new_groups, *old_groups;
|
struct r5worker_group *new_groups, *old_groups;
|
||||||
int group_cnt, worker_cnt_per_group;
|
int group_cnt, worker_cnt_per_group;
|
||||||
|
|
||||||
if (len >= PAGE_SIZE)
|
if (len >= PAGE_SIZE)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (kstrtoul(page, 10, &new))
|
if (kstrtouint(page, 10, &new))
|
||||||
|
return -EINVAL;
|
||||||
|
/* 8192 should be big enough */
|
||||||
|
if (new > 8192)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
err = mddev_lock(mddev);
|
err = mddev_lock(mddev);
|
||||||
|
|
Loading…
Reference in New Issue