diff options
author | Brian Norris <computersforpeace@gmail.com> | 2015-02-28 05:02:26 -0500 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2015-03-11 18:21:47 -0400 |
commit | b9da8bae416efda5ad61c7c92edbb30de15ff7ee (patch) | |
tree | 85278d8d43ad2db78971ed9de0cc08f5097c7014 /drivers/mtd/tests | |
parent | 7f2a7ce17dcd381e366a65b6643239338a987715 (diff) |
mtd: tests: fix more potential integer overflows
Caught by Coverity (CID #200625 and others)
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Cc: Akinobu Mita <akinobu.mita@gmail.com>
Diffstat (limited to 'drivers/mtd/tests')
-rw-r--r-- | drivers/mtd/tests/oobtest.c | 2 | ||||
-rw-r--r-- | drivers/mtd/tests/speedtest.c | 2 | ||||
-rw-r--r-- | drivers/mtd/tests/stresstest.c | 4 | ||||
-rw-r--r-- | drivers/mtd/tests/subpagetest.c | 4 | ||||
-rw-r--r-- | drivers/mtd/tests/torturetest.c | 8 |
5 files changed, 10 insertions, 10 deletions
diff --git a/drivers/mtd/tests/oobtest.c b/drivers/mtd/tests/oobtest.c index 5e061186eab1..64390ab88a80 100644 --- a/drivers/mtd/tests/oobtest.c +++ b/drivers/mtd/tests/oobtest.c | |||
@@ -70,7 +70,7 @@ static int write_eraseblock(int ebnum) | |||
70 | int i; | 70 | int i; |
71 | struct mtd_oob_ops ops; | 71 | struct mtd_oob_ops ops; |
72 | int err = 0; | 72 | int err = 0; |
73 | loff_t addr = ebnum * mtd->erasesize; | 73 | loff_t addr = (loff_t)ebnum * mtd->erasesize; |
74 | 74 | ||
75 | prandom_bytes_state(&rnd_state, writebuf, use_len_max * pgcnt); | 75 | prandom_bytes_state(&rnd_state, writebuf, use_len_max * pgcnt); |
76 | for (i = 0; i < pgcnt; ++i, addr += mtd->writesize) { | 76 | for (i = 0; i < pgcnt; ++i, addr += mtd->writesize) { |
diff --git a/drivers/mtd/tests/speedtest.c b/drivers/mtd/tests/speedtest.c index 5ee9f7021020..a77019cb5510 100644 --- a/drivers/mtd/tests/speedtest.c +++ b/drivers/mtd/tests/speedtest.c | |||
@@ -185,7 +185,7 @@ static long calc_speed(void) | |||
185 | (finish.tv_usec - start.tv_usec) / 1000; | 185 | (finish.tv_usec - start.tv_usec) / 1000; |
186 | if (ms == 0) | 186 | if (ms == 0) |
187 | return 0; | 187 | return 0; |
188 | k = goodebcnt * (mtd->erasesize / 1024) * 1000; | 188 | k = (uint64_t)goodebcnt * (mtd->erasesize / 1024) * 1000; |
189 | do_div(k, ms); | 189 | do_div(k, ms); |
190 | return k; | 190 | return k; |
191 | } | 191 | } |
diff --git a/drivers/mtd/tests/stresstest.c b/drivers/mtd/tests/stresstest.c index c9d42cc2df1b..d90c1c01dac6 100644 --- a/drivers/mtd/tests/stresstest.c +++ b/drivers/mtd/tests/stresstest.c | |||
@@ -96,7 +96,7 @@ static int do_read(void) | |||
96 | if (offs + len > mtd->erasesize) | 96 | if (offs + len > mtd->erasesize) |
97 | len = mtd->erasesize - offs; | 97 | len = mtd->erasesize - offs; |
98 | } | 98 | } |
99 | addr = eb * mtd->erasesize + offs; | 99 | addr = (loff_t)eb * mtd->erasesize + offs; |
100 | return mtdtest_read(mtd, addr, len, readbuf); | 100 | return mtdtest_read(mtd, addr, len, readbuf); |
101 | } | 101 | } |
102 | 102 | ||
@@ -124,7 +124,7 @@ static int do_write(void) | |||
124 | offsets[eb + 1] = 0; | 124 | offsets[eb + 1] = 0; |
125 | } | 125 | } |
126 | } | 126 | } |
127 | addr = eb * mtd->erasesize + offs; | 127 | addr = (loff_t)eb * mtd->erasesize + offs; |
128 | err = mtdtest_write(mtd, addr, len, writebuf); | 128 | err = mtdtest_write(mtd, addr, len, writebuf); |
129 | if (unlikely(err)) | 129 | if (unlikely(err)) |
130 | return err; | 130 | return err; |
diff --git a/drivers/mtd/tests/subpagetest.c b/drivers/mtd/tests/subpagetest.c index 7b59ef522d5e..0b835c631f91 100644 --- a/drivers/mtd/tests/subpagetest.c +++ b/drivers/mtd/tests/subpagetest.c | |||
@@ -95,7 +95,7 @@ static int write_eraseblock2(int ebnum) | |||
95 | loff_t addr = (loff_t)ebnum * mtd->erasesize; | 95 | loff_t addr = (loff_t)ebnum * mtd->erasesize; |
96 | 96 | ||
97 | for (k = 1; k < 33; ++k) { | 97 | for (k = 1; k < 33; ++k) { |
98 | if (addr + (subpgsize * k) > (ebnum + 1) * mtd->erasesize) | 98 | if (addr + (subpgsize * k) > (loff_t)(ebnum + 1) * mtd->erasesize) |
99 | break; | 99 | break; |
100 | prandom_bytes_state(&rnd_state, writebuf, subpgsize * k); | 100 | prandom_bytes_state(&rnd_state, writebuf, subpgsize * k); |
101 | err = mtd_write(mtd, addr, subpgsize * k, &written, writebuf); | 101 | err = mtd_write(mtd, addr, subpgsize * k, &written, writebuf); |
@@ -195,7 +195,7 @@ static int verify_eraseblock2(int ebnum) | |||
195 | loff_t addr = (loff_t)ebnum * mtd->erasesize; | 195 | loff_t addr = (loff_t)ebnum * mtd->erasesize; |
196 | 196 | ||
197 | for (k = 1; k < 33; ++k) { | 197 | for (k = 1; k < 33; ++k) { |
198 | if (addr + (subpgsize * k) > (ebnum + 1) * mtd->erasesize) | 198 | if (addr + (subpgsize * k) > (loff_t)(ebnum + 1) * mtd->erasesize) |
199 | break; | 199 | break; |
200 | prandom_bytes_state(&rnd_state, writebuf, subpgsize * k); | 200 | prandom_bytes_state(&rnd_state, writebuf, subpgsize * k); |
201 | clear_data(readbuf, subpgsize * k); | 201 | clear_data(readbuf, subpgsize * k); |
diff --git a/drivers/mtd/tests/torturetest.c b/drivers/mtd/tests/torturetest.c index b55bc52a1340..5045cf1b3160 100644 --- a/drivers/mtd/tests/torturetest.c +++ b/drivers/mtd/tests/torturetest.c | |||
@@ -101,11 +101,11 @@ static inline int check_eraseblock(int ebnum, unsigned char *buf) | |||
101 | { | 101 | { |
102 | int err, retries = 0; | 102 | int err, retries = 0; |
103 | size_t read; | 103 | size_t read; |
104 | loff_t addr = ebnum * mtd->erasesize; | 104 | loff_t addr = (loff_t)ebnum * mtd->erasesize; |
105 | size_t len = mtd->erasesize; | 105 | size_t len = mtd->erasesize; |
106 | 106 | ||
107 | if (pgcnt) { | 107 | if (pgcnt) { |
108 | addr = (ebnum + 1) * mtd->erasesize - pgcnt * pgsize; | 108 | addr = (loff_t)(ebnum + 1) * mtd->erasesize - pgcnt * pgsize; |
109 | len = pgcnt * pgsize; | 109 | len = pgcnt * pgsize; |
110 | } | 110 | } |
111 | 111 | ||
@@ -155,11 +155,11 @@ static inline int write_pattern(int ebnum, void *buf) | |||
155 | { | 155 | { |
156 | int err; | 156 | int err; |
157 | size_t written; | 157 | size_t written; |
158 | loff_t addr = ebnum * mtd->erasesize; | 158 | loff_t addr = (loff_t)ebnum * mtd->erasesize; |
159 | size_t len = mtd->erasesize; | 159 | size_t len = mtd->erasesize; |
160 | 160 | ||
161 | if (pgcnt) { | 161 | if (pgcnt) { |
162 | addr = (ebnum + 1) * mtd->erasesize - pgcnt * pgsize; | 162 | addr = (loff_t)(ebnum + 1) * mtd->erasesize - pgcnt * pgsize; |
163 | len = pgcnt * pgsize; | 163 | len = pgcnt * pgsize; |
164 | } | 164 | } |
165 | err = mtd_write(mtd, addr, len, &written, buf); | 165 | err = mtd_write(mtd, addr, len, &written, buf); |