From 6ea60bcdbaf07b400adb1de971c3562d15f55668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 15 Apr 2012 13:28:16 +0200 Subject: [PATCH] This must be a 64 bit computation for disks larger than 4GB. * This closes ticket #8460. * Patch from jahaiku, thanks! --- .../kernel/file_systems/iso9660/kernel_interface.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp b/src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp index abcc8962a5..4ed83b5f90 100644 --- a/src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp @@ -65,8 +65,8 @@ iterative_io_get_vecs_hook(void* cookie, io_request* request, off_t offset, { iso9660_inode* node = (iso9660_inode*)cookie; - vecs->offset = offset + node->startLBN[FS_DATA_FORMAT] - * node->volume->logicalBlkSize[FS_DATA_FORMAT]; + vecs->offset = offset + ((off_t)node->startLBN[FS_DATA_FORMAT] + * (off_t)node->volume->logicalBlkSize[FS_DATA_FORMAT]); vecs->length = size; *_count = 1; @@ -439,8 +439,8 @@ fs_read_pages(fs_volume* _volume, fs_vnode* _node, void* _cookie, off_t pos, } file_io_vec fileVec; - fileVec.offset = pos + node->startLBN[FS_DATA_FORMAT] - * volume->logicalBlkSize[FS_DATA_FORMAT]; + fileVec.offset = pos + ((off_t)node->startLBN[FS_DATA_FORMAT] + * (off_t)volume->logicalBlkSize[FS_DATA_FORMAT]); fileVec.length = bytesLeft; uint32 vecIndex = 0;