summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch')
-rw-r--r--meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch b/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch
new file mode 100644
index 0000000000..05b095edf0
--- /dev/null
+++ b/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch
@@ -0,0 +1,37 @@
1
2This patch fixes up the computation of nbinodes which would go
3negative due to an int overflow issue when nbblocks > 2Meg for
4a 2Gig or greater filesystem.
5
6The computation is now done as a float equation, since both nbblocks
7and bytes_per_inode are no floats, and then cast to int by assignment.
8
9int tmp_nbinodes = nbblocks * BLOCKSIZE / bytes_per_inode;
10
11Upstream-Status: Submitted
12Signed-off-by: Saul Wold <sgw@linux.intel.com>
13
14Rebased by Dexuan Cui <dexuan.cui@intel.com>
15
16Index: genext2fs-1.4.1/genext2fs.c
17===================================================================
18--- a/genext2fs.c 2012-03-29 00:07:20.308856017 +0800
19+++ b/genext2fs.c 2012-03-29 00:09:06.848856005 +0800
20@@ -3041,7 +3041,7 @@
21 int
22 main(int argc, char **argv)
23 {
24- int nbblocks = -1;
25+ float nbblocks = -1;
26 int nbinodes = -1;
27 int nbresrvd = -1;
28 float bytes_per_inode = -1;
29@@ -3203,7 +3203,7 @@
30 }
31 if(fs_timestamp == -1)
32 fs_timestamp = time(NULL);
33- fs = init_fs(nbblocks, nbinodes, nbresrvd, holes, fs_timestamp,
34+ fs = init_fs((int)nbblocks, nbinodes, nbresrvd, holes, fs_timestamp,
35 bigendian, fsout);
36 }
37 if (volumelabel != NULL)