From 05826ec74b13fa9e5daf7a56f30dc4aa40b67707 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 11 Nov 2013 21:48:32 +0100 Subject: [PATCH] ext2_get_file_map(): Fix broken termination condition --- src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp b/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp index daea2ec47f..9d38de29f9 100644 --- a/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp @@ -465,14 +465,15 @@ ext2_get_file_map(fs_volume* _volume, fs_vnode* _node, off_t offset, } offset += blockLength; - size -= blockLength; - if ((off_t)size <= vecs[index - 1].length || offset >= inode->Size()) { + if (offset >= inode->Size() || size <= blockLength) { // We're done! *_count = index; TRACE("ext2_get_file_map for inode %" B_PRIdINO "\n", inode->ID()); return B_OK; } + + size -= blockLength; } // can never get here