public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH 1/1] cmd: mtd: avoid unintentional integer overflow
@ 2024-01-11  7:31 Heinrich Schuchardt
  2024-01-11  7:48 ` Miquel Raynal
  0 siblings, 1 reply; 2+ messages in thread
From: Heinrich Schuchardt @ 2024-01-11  7:31 UTC (permalink / raw)
  To: Tom Rini
  Cc: Simon Glass, Miquel Raynal, Stefan Roese, Jagan Teki,
	Boris Brezillon, u-boot, Heinrich Schuchardt

mtd dump beyond 4 GiB will show incorrect results.

Multiplying two u32 will yield a u32. Add a missing cast.

Fixes: 5db66b3aee6f ("cmd: mtd: add 'mtd' command")
Addresses-Coverity-ID: 477205 ("Unintentional integer overflow")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
---
 cmd/mtd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/cmd/mtd.c b/cmd/mtd.c
index e63c011e79..9083a6840a 100644
--- a/cmd/mtd.c
+++ b/cmd/mtd.c
@@ -77,7 +77,7 @@ static void mtd_dump_device_buf(struct mtd_info *mtd, u64 start_off,
 
 	if (has_pages) {
 		for (page = 0; page < npages; page++) {
-			u64 data_off = page * mtd->writesize;
+			u64 data_off = (u64)page * mtd->writesize;
 
 			printf("\nDump %d data bytes from 0x%08llx:\n",
 			       mtd->writesize, start_off + data_off);
@@ -85,7 +85,7 @@ static void mtd_dump_device_buf(struct mtd_info *mtd, u64 start_off,
 				     mtd->writesize, start_off + data_off);
 
 			if (woob) {
-				u64 oob_off = page * mtd->oobsize;
+				u64 oob_off = (u64)page * mtd->oobsize;
 
 				printf("Dump %d OOB bytes from page at 0x%08llx:\n",
 				       mtd->oobsize, start_off + data_off);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/1] cmd: mtd: avoid unintentional integer overflow
  2024-01-11  7:31 [PATCH 1/1] cmd: mtd: avoid unintentional integer overflow Heinrich Schuchardt
@ 2024-01-11  7:48 ` Miquel Raynal
  0 siblings, 0 replies; 2+ messages in thread
From: Miquel Raynal @ 2024-01-11  7:48 UTC (permalink / raw)
  To: Heinrich Schuchardt
  Cc: Tom Rini, Simon Glass, Stefan Roese, Boris Brezillon, u-boot

Hi Heinrich,

heinrich.schuchardt@canonical.com wrote on Thu, 11 Jan 2024 08:31:55
+0100:

> mtd dump beyond 4 GiB will show incorrect results.
> 
> Multiplying two u32 will yield a u32. Add a missing cast.

Good point, thanks for the fix.

Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>

Thanks,
Miquèl

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-01-11  7:49 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-11  7:31 [PATCH 1/1] cmd: mtd: avoid unintentional integer overflow Heinrich Schuchardt
2024-01-11  7:48 ` Miquel Raynal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox