]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Monitor: avoid NULL dereference with 0.90 metadata
authorJonathan Liu <net147@gmail.com>
Tue, 12 Apr 2011 08:28:01 +0000 (18:28 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 12 Apr 2011 22:25:45 +0000 (08:25 +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.

This adds an additional check missed by commit
eb28e119b03fd5149886ed516fa4bb006ad3602e.

Signed-off-by: NeilBrown <neilb@suse.de>
Monitor.c

index a3ea72479a9dbf80547ce4b235d573c7acaac9c7..55aebeba7360f4bd245f51089fe06a4e7ee7cd06 100644 (file)
--- 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);