diff -Nur mdadm-3.2.1.orig/Monitor.c mdadm-3.2.1/Monitor.c --- mdadm-3.2.1.orig/Monitor.c 2011-03-28 13:31:20.000000000 +1100 +++ mdadm-3.2.1/Monitor.c 2011-04-12 18:18:40.411908655 +1000 @@ -577,7 +577,8 @@ 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); @@ -688,7 +689,8 @@ 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);