Dan Williams: imsm: fix thunderdome segfault

Martin F. Krafft madduck at alioth.debian.org
Wed Jan 27 02:04:03 UTC 2010


Module: mdadm
Branch: upstream
Commit: ecf408e9149dbd6ef61fdcbc92c5816c0eb7fc84
URL:    http://git.debian.org/?p=pkg-mdadm/mdadm.git;a=commit;h=ecf408e9149dbd6ef61fdcbc92c5816c0eb7fc84

Author: Dan Williams <dan.j.williams at intel.com>
Date:   Sat Dec 12 13:57:25 2009 -0700

imsm: fix thunderdome segfault

disk_list_get() can return NULL if:
1/ A formerly missing disk is re-added
2/ The original array has not been rebuilt, so the family number of the
   missing disk still matches
3/ The metadata record of the in-sync disks are read before the missing
   disk

This will result in the missing disk not adding its own serial number to
the disk_list, only its truncated value will be present.

Signed-off-by: Dan Williams <dan.j.williams at intel.com>

---

 super-intel.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/super-intel.c b/super-intel.c
index 39a2985..2d5796f 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -2429,7 +2429,7 @@ imsm_thunderdome(struct intel_super **super_list, int len)
 			struct intel_disk *idisk;
 
 			idisk = disk_list_get(dl->serial, disk_list);
-			if (is_spare(&idisk->disk) &&
+			if (idisk && is_spare(&idisk->disk) &&
 			    !is_failed(&idisk->disk) && !is_configured(&idisk->disk))
 				dl->index = -1;
 			else {




More information about the pkg-mdadm-commits mailing list