From: NeilBrown Date: Wed, 1 Jul 2009 01:14:04 +0000 (+1000) Subject: md: avoid dereferencing NULL pointer when accessing suspend_* sysfs attributes. X-Git-Tag: v2.6.30.2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c92900d9a4afb176d3de335dc0da0198660a244;p=thirdparty%2Fkernel%2Fstable.git md: avoid dereferencing NULL pointer when accessing suspend_* sysfs attributes. commit b8d966efd9a46a9a35beac50cbff6e30565125ef upstream. 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. Signed-off-by: NeilBrown Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/md/md.c b/drivers/md/md.c index 42d4eb8acbc0e..eb1b73f69e00c 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -3589,7 +3589,8 @@ suspend_lo_store(mddev_t *mddev, const char *buf, size_t len) char *e; unsigned long long new = simple_strtoull(buf, &e, 10); - if (mddev->pers->quiesce == NULL) + if (mddev->pers == NULL || + mddev->pers->quiesce == NULL) return -EINVAL; if (buf == e || (*e && *e != '\n')) return -EINVAL; @@ -3617,7 +3618,8 @@ suspend_hi_store(mddev_t *mddev, const char *buf, size_t len) char *e; unsigned long long new = simple_strtoull(buf, &e, 10); - if (mddev->pers->quiesce == NULL) + if (mddev->pers == NULL || + mddev->pers->quiesce == NULL) return -EINVAL; if (buf == e || (*e && *e != '\n')) return -EINVAL;