summaryrefslogtreecommitdiff
path: root/Monitor.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2011-04-05 09:16:57 +1000
committerNeilBrown <neilb@suse.de>2011-04-05 09:16:57 +1000
commiteb28e119b03fd5149886ed516fa4bb006ad3602e (patch)
tree3249ea9164bb2847d2a2d1b5d88529afbd62849c /Monitor.c
parentaf3c3750348e62784861cde341835f69f36913b4 (diff)
Monitor: avoid NULL dereference with 0.90 metadata
0.90 array do not report the metadata type in /proc/mdstat, so we cannot assume that mse->metadata_version is non-NULL. So add an appropriate check. Reported-by: Eugene <hdejin@yahoo.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Monitor.c')
-rw-r--r--Monitor.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Monitor.c b/Monitor.c
index 291e4656..337785d6 100644
--- a/Monitor.c
+++ b/Monitor.c
@@ -688,7 +688,8 @@ static int add_new_arrays(struct mdstat_ent *mdstat, struct state **statelist,
st->devnum = mse->devnum;
st->percent = -2;
st->expected_spares = -1;
- if (strncmp(mse->metadata_version, "external:", 9) == 0 &&
+ if (mse->metadata_version &&
+ strncmp(mse->metadata_version, "external:", 9) == 0 &&
is_subarray(mse->metadata_version+9))
st->parent_dev =
devname2devnum(mse->metadata_version+10);