md: avoid dereferencing NULL pointer when accessing suspend_* sysfs attributes.
If we try to modify one of the md/ sysfs files suspend_lo or suspend_hi when the array is not active, we dereference a NULL. Protect against that. Cc: stable@kernel.org Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
@@ -3573,7 +3573,8 @@ suspend_lo_store(mddev_t *mddev, const char *buf, size_t len)
|
|||||||
char *e;
|
char *e;
|
||||||
unsigned long long new = simple_strtoull(buf, &e, 10);
|
unsigned long long new = simple_strtoull(buf, &e, 10);
|
||||||
|
|
||||||
if (mddev->pers->quiesce == NULL)
|
if (mddev->pers == NULL ||
|
||||||
|
mddev->pers->quiesce == NULL)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (buf == e || (*e && *e != '\n'))
|
if (buf == e || (*e && *e != '\n'))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -3601,7 +3602,8 @@ suspend_hi_store(mddev_t *mddev, const char *buf, size_t len)
|
|||||||
char *e;
|
char *e;
|
||||||
unsigned long long new = simple_strtoull(buf, &e, 10);
|
unsigned long long new = simple_strtoull(buf, &e, 10);
|
||||||
|
|
||||||
if (mddev->pers->quiesce == NULL)
|
if (mddev->pers == NULL ||
|
||||||
|
mddev->pers->quiesce == NULL)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (buf == e || (*e && *e != '\n'))
|
if (buf == e || (*e && *e != '\n'))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
Reference in New Issue
Block a user