]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
imsm: fail ->open_new if container_member is out of range
authorDan Williams <dan.j.williams@intel.com>
Mon, 14 Jul 2008 20:57:33 +0000 (13:57 -0700)
committerDan Williams <dan.j.williams@intel.com>
Mon, 14 Jul 2008 20:57:33 +0000 (13:57 -0700)
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
super-intel.c

index ea29540eedc0902f57d6f74334bffafbe6342bda..eadfb59b5f108441b87cf41862b7465bafb32359 100644 (file)
@@ -1627,6 +1627,15 @@ static struct mdinfo *container_content_imsm(struct supertype *st)
 static int imsm_open_new(struct supertype *c, struct active_array *a,
                         char *inst)
 {
+       struct intel_super *super = c->sb;
+       struct imsm_super *mpb = super->mpb;
+       
+       if (atoi(inst) + 1 > mpb->num_raid_devs) {
+               fprintf(stderr, "%s: subarry index %d, out of range\n",
+                       __func__, atoi(inst));
+               return -ENODEV;
+       }
+
        dprintf("imsm: open_new %s\n", inst);
        a->info.container_member = atoi(inst);
        return 0;