diff options
author | Nikanth Karthikesan <knikanth@suse.de> | 2010-02-16 18:42:47 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-02-23 07:37:58 -0800 |
commit | 7607864c43f7d2559153179fabd9dc8ade6b70a0 (patch) | |
tree | 5985f2181da0e474dbe9a38b23c842def1614aee | |
parent | 98d7938431c181dea6a03f5f89b550f081ad6220 (diff) |
dm stripe: avoid divide by zero with invalid stripe count
commit 781248c1b50c776a9ef4be1130f84ced1cba42fe upstream.
If a table containing zero as stripe count is passed into stripe_ctr
the code attempts to divide by zero.
This patch changes DM_TABLE_LOAD to return -EINVAL if the stripe count
is zero.
We now get the following error messages:
device-mapper: table: 253:0: striped: Invalid stripe count
device-mapper: ioctl: error adding target to table
Signed-off-by: Nikanth Karthikesan <knikanth@suse.de>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/md/dm-stripe.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c index e0efc1adcaff..bd58703ee8f6 100644 --- a/drivers/md/dm-stripe.c +++ b/drivers/md/dm-stripe.c @@ -110,7 +110,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv) } stripes = simple_strtoul(argv[0], &end, 10); - if (*end) { + if (!stripes || *end) { ti->error = "Invalid stripe count"; return -EINVAL; } |