From 4019ad07013a5d8618b867f724d1c4a13c5cb05d Mon Sep 17 00:00:00 2001 From: Jonathan Liu Date: Tue, 12 Apr 2011 18:28:01 +1000 Subject: [PATCH] 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. This adds an additional check missed by commit eb28e119b03fd5149886ed516fa4bb006ad3602e. Signed-off-by: NeilBrown --- Monitor.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/Monitor.c b/Monitor.c index a3ea724..55aebeb 100644 --- a/Monitor.c +++ b/Monitor.c @@ -577,7 +577,8 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat, info[i].major = info[i].minor = 0; } - 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); -- 1.7.2.3 From eb28e119b03fd5149886ed516fa4bb006ad3602e Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Tue, 5 Apr 2011 09:16:57 +1000 Subject: [PATCH] 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 Signed-off-by: NeilBrown --- Monitor.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/Monitor.c b/Monitor.c index 291e465..337785d 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); -- 1.7.2.3