summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/tests
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2015-02-28 05:02:26 -0500
committerBrian Norris <computersforpeace@gmail.com>2015-03-11 18:21:47 -0400
commitb9da8bae416efda5ad61c7c92edbb30de15ff7ee (patch)
tree85278d8d43ad2db78971ed9de0cc08f5097c7014 /drivers/mtd/tests
parent7f2a7ce17dcd381e366a65b6643239338a987715 (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.c2
-rw-r--r--drivers/mtd/tests/speedtest.c2
-rw-r--r--drivers/mtd/tests/stresstest.c4
-rw-r--r--drivers/mtd/tests/subpagetest.c4
-rw-r--r--drivers/mtd/tests/torturetest.c8
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);