diff options
| author | Nikanth Karthikesan <knikanth@suse.de> | 2010-02-16 13:42:47 -0500 |
|---|---|---|
| committer | Alasdair G Kergon <agk@redhat.com> | 2010-02-16 13:42:47 -0500 |
| commit | 781248c1b50c776a9ef4be1130f84ced1cba42fe (patch) | |
| tree | aa102797cde7b10623eefbeee493c36fdf2bdfe3 | |
| parent | 0813e22d4e0d618eac9b47bec942bf856adca4c5 (diff) | |
dm stripe: avoid divide by zero with invalid stripe count
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>
Cc: stable@kernel.org
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
| -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) | |||
| 110 | } | 110 | } |
| 111 | 111 | ||
| 112 | stripes = simple_strtoul(argv[0], &end, 10); | 112 | stripes = simple_strtoul(argv[0], &end, 10); |
| 113 | if (*end) { | 113 | if (!stripes || *end) { |
| 114 | ti->error = "Invalid stripe count"; | 114 | ti->error = "Invalid stripe count"; |
| 115 | return -EINVAL; | 115 | return -EINVAL; |
| 116 | } | 116 | } |
