[haiku-commits] haiku: hrev44443 - src/add-ons/kernel/file_systems/bfs

  • From: alex@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 31 Jul 2012 13:11:25 +0200 (CEST)

hrev44443 adds 1 changeset to branch 'master'
old head: 8ffd0477dd4998324e051800da35cadd91a7fb8c
new head: caa1e8b74245bd1602bd9d6ae642e34beb583a00

----------------------------------------------------------------------------

caa1e8b: Fix CID 712419, 712420, 712421, 712422: Unintentional sign extension 
to 64 bits.

                                      [ Alex Smith <alex@xxxxxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44443
Commit:      caa1e8b74245bd1602bd9d6ae642e34beb583a00
URL:         http://cgit.haiku-os.org/haiku/commit/?id=caa1e8b
Author:      Alex Smith <alex@xxxxxxxxxxxxxxxx>
Date:        Tue Jul 31 09:12:33 2012 UTC

----------------------------------------------------------------------------

3 files changed, 8 insertions(+), 5 deletions(-)
.../kernel/file_systems/bfs/BlockAllocator.cpp     |    5 +++--
src/add-ons/kernel/file_systems/bfs/Inode.cpp      |    5 +++--
.../kernel/file_systems/bfs/kernel_interface.cpp   |    3 ++-

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp 
b/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp
index b0d446f..0540354 100644
--- a/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp
+++ b/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp
@@ -1990,8 +1990,9 @@ BlockAllocator::_CheckInodeBlocks(Inode* inode, const 
char* name)
                        if (status != B_OK)
                                return status;
 
-                       int32 maxIndex = (indirect.Length() << 
fVolume->BlockShift())
-                               / sizeof(block_run);
+                       int32 maxIndex =
+                               ((uint32)indirect.Length() << 
fVolume->BlockShift())
+                                       / sizeof(block_run);
 
                        for (int32 index = 0; index < maxIndex; ) {
                                block_run* runs = 
(block_run*)cachedDirect.SetTo(
diff --git a/src/add-ons/kernel/file_systems/bfs/Inode.cpp 
b/src/add-ons/kernel/file_systems/bfs/Inode.cpp
index 8e0c0f0..8abf77c 100644
--- a/src/add-ons/kernel/file_systems/bfs/Inode.cpp
+++ b/src/add-ons/kernel/file_systems/bfs/Inode.cpp
@@ -1517,7 +1517,8 @@ Inode::FindBlockRun(off_t pos, block_run& run, off_t& 
offset)
                                << fVolume->BlockShift();
                        if (runBlockEnd > pos) {
                                run = data->direct[current];
-                               offset = runBlockEnd - (run.Length() << 
fVolume->BlockShift());
+                               offset = runBlockEnd
+                                       - ((uint32)run.Length() << 
fVolume->BlockShift());
                                return fVolume->ValidateBlockRun(run);
                        }
                }
@@ -1878,7 +1879,7 @@ Inode::_GrowStream(Transaction& transaction, off_t size)
 
                                data->max_indirect_range = 
HOST_ENDIAN_TO_BFS_INT64(
                                        data->MaxIndirectRange()
-                                       + (run.Length() << 
fVolume->BlockShift()));
+                                       + ((uint32)run.Length() << 
fVolume->BlockShift()));
                                data->size = 
HOST_ENDIAN_TO_BFS_INT64(blocksNeeded > 0
                                        ? data->MaxIndirectRange() : size);
                                continue;
diff --git a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 
b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp
index fff1563..ad9b887 100644
--- a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp
+++ b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp
@@ -527,7 +527,8 @@ bfs_get_file_map(fs_volume* _volume, fs_vnode* _node, off_t 
offset, size_t size,
                        return status;
 
                vecs[index].offset = volume->ToOffset(run) + offset - 
fileOffset;
-               vecs[index].length = (run.Length() << blockShift) - offset + 
fileOffset;
+               vecs[index].length = ((uint32)run.Length() << blockShift)
+                       - offset + fileOffset;
 
                // are we already done?
                if ((uint64)size <= (uint64)vecs[index].length


Other related posts:

  • » [haiku-commits] haiku: hrev44443 - src/add-ons/kernel/file_systems/bfs - alex