diff options
author | Mikulas Patocka <mpatocka@redhat.com> | 2015-06-05 09:50:42 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-08-03 09:29:55 -0700 |
commit | d90be37ead9f3a9a7a254e9eb8b56d7e82d3d0b5 (patch) | |
tree | db38ba1f6fcc16258fb893665e58473cda400a84 | |
parent | 9d5feb50069fd51462440359c65aa27321f606eb (diff) | |
download | lwn-d90be37ead9f3a9a7a254e9eb8b56d7e82d3d0b5.tar.gz lwn-d90be37ead9f3a9a7a254e9eb8b56d7e82d3d0b5.zip |
dm stats: fix divide by zero if 'number_of_areas' arg is zero
commit dd4c1b7d0c95be1c9245118a3accc41a16f1db67 upstream.
If the number_of_areas argument was zero the kernel would crash on
div-by-zero. Add better input validation.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/md/dm-stats.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c index 28a90122a5a8..b3b0697a9fd7 100644 --- a/drivers/md/dm-stats.c +++ b/drivers/md/dm-stats.c @@ -795,6 +795,8 @@ static int message_stats_create(struct mapped_device *md, return -EINVAL; if (sscanf(argv[2], "/%u%c", &divisor, &dummy) == 1) { + if (!divisor) + return -EINVAL; step = end - start; if (do_div(step, divisor)) step++; |