]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Assemble: fix handling of empty container
authorDan Williams <dan.j.williams@intel.com>
Tue, 4 Aug 2009 17:17:23 +0000 (10:17 -0700)
committerDan Williams <dan.j.williams@intel.com>
Tue, 4 Aug 2009 17:17:23 +0000 (10:17 -0700)
# mdadm --create /dev/md/ddf /dev/sd[b-e] -n 4 -e ddf
mdadm: container /dev/md/ddf prepared.
# mdadm -Ss
mdadm: stopped /dev/md126
# mdadm -As
mdadm: Container /dev/md/ddf0 has been assembled with 4 drives
Segmentation fault

Reported-by: Artur Wojcik <artur.wojcik@intel.com>
Reported-by: Jacek Danecki <jacek.danecki@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Assemble.c

index 3c3a004fc8045a67b16351a4bde7d7d3b67f8c04..4578906ed6d463fd7a81c70ea531210f446d0605 100644 (file)
@@ -320,6 +320,8 @@ int Assemble(struct supertype *st, char *mddev,
                                content = tmpdev->content;
                        else
                                content = tst->ss->container_content(tst);
+                       if (!content)
+                               goto loop; /* empty container */
 
                        tmpdev->content = content->next;
                        if (tmpdev->content == NULL)