]> www.infradead.org Git - mtd-utils.git/commit
ubiformat: fix failure on big partitions (>4Gio)
authorRichard Genoud <richard.genoud@gmail.com>
Wed, 12 Sep 2012 14:37:19 +0000 (16:37 +0200)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Tue, 25 Sep 2012 14:04:09 +0000 (17:04 +0300)
commit1d73b5ef185b10f44afb73b91c960c9e9e6d2bf6
treea5b9386d38613a04fc421150ab64a92201b8f628
parent3a8e8d14f0ecaf2362e0d12541087036a2a201dd
ubiformat: fix failure on big partitions (>4Gio)

The offset (which is 64bits when mtd-utils are not compile with
WITHOUT_LARGEFILE) is calculated like that:
offset = nb * size;
But nb and size are int, so on 32bits platforms, there's a possible
overflow.

So, it should be replace with:
offset = (off_t)nb * size;
If WITHOUT_LARGEFILE is defined, there still be an overflow, but it's
what we want, right ?

Cheney Chen tested an ubiformat on a NAND (5.9 GiB mtd part).

Reported-by: Cheney Chen <cheneychencl2012@gmail.com>
Tested-by: Cheney Chen <cheneychencl2012@gmail.com>
Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
ubi-utils/libubigen.c