]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Monitor: avoid NULL dereference with 0.90 metadata
authorNeilBrown <neilb@suse.de>
Mon, 4 Apr 2011 23:16:57 +0000 (09:16 +1000)
committerNeilBrown <neilb@suse.de>
Mon, 4 Apr 2011 23:16:57 +0000 (09:16 +1000)
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>
Monitor.c

index 291e465678744a61aad6f41b165877fab11ce4c9..337785d67fc531da21978ff025a97d61361995e7 100644 (file)
--- 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);