From: Dan Williams Date: Mon, 14 Jul 2008 20:57:33 +0000 (-0700) Subject: imsm: fail ->open_new if container_member is out of range X-Git-Tag: mdadm-3.0-devel1~117 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0372d5a2f472eb0b1d07b03661c35f51cec5fe0c;p=thirdparty%2Fmdadm.git imsm: fail ->open_new if container_member is out of range Signed-off-by: Dan Williams --- diff --git a/super-intel.c b/super-intel.c index ea29540e..eadfb59b 100644 --- a/super-intel.c +++ b/super-intel.c @@ -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;