diff options
author | Bob Copeland <me@bobcopeland.com> | 2015-05-29 00:44:37 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-05-29 03:25:19 +0200 |
commit | 5a6b2b36a8249ec9dfb2a714acadad86d9cc0aee (patch) | |
tree | f3878e295f5eaa25ecee2925481e4c0d9182f5a0 | |
parent | omfs: fix sign confusion for bitmap loop counter (diff) | |
download | linux-5a6b2b36a8249ec9dfb2a714acadad86d9cc0aee.tar.xz linux-5a6b2b36a8249ec9dfb2a714acadad86d9cc0aee.zip |
omfs: fix potential integer overflow in allocator
Both 'i' and 'bits_per_entry' are signed integers but the result is a
u64 block number. Cast i to u64 to avoid truncation on 32-bit targets.
Found by Coverity (CID 200679).
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/omfs/bitmap.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/omfs/bitmap.c b/fs/omfs/bitmap.c index 082234581d05..83f4e76511c2 100644 --- a/fs/omfs/bitmap.c +++ b/fs/omfs/bitmap.c @@ -159,7 +159,7 @@ int omfs_allocate_range(struct super_block *sb, goto out; found: - *return_block = i * bits_per_entry + bit; + *return_block = (u64) i * bits_per_entry + bit; *return_size = run; ret = set_run(sb, i, bits_per_entry, bit, run, 1); |