This must be a 64 bit computation for disks larger than 4GB.

* This closes ticket #8460.
* Patch from jahaiku, thanks!
This commit is contained in:
Axel Dörfler 2012-04-15 13:28:16 +02:00
parent 3af8da0ef8
commit 6ea60bcdba
1 changed files with 4 additions and 4 deletions

View File

@ -65,8 +65,8 @@ iterative_io_get_vecs_hook(void* cookie, io_request* request, off_t offset,
{ {
iso9660_inode* node = (iso9660_inode*)cookie; iso9660_inode* node = (iso9660_inode*)cookie;
vecs->offset = offset + node->startLBN[FS_DATA_FORMAT] vecs->offset = offset + ((off_t)node->startLBN[FS_DATA_FORMAT]
* node->volume->logicalBlkSize[FS_DATA_FORMAT]; * (off_t)node->volume->logicalBlkSize[FS_DATA_FORMAT]);
vecs->length = size; vecs->length = size;
*_count = 1; *_count = 1;
@ -439,8 +439,8 @@ fs_read_pages(fs_volume* _volume, fs_vnode* _node, void* _cookie, off_t pos,
} }
file_io_vec fileVec; file_io_vec fileVec;
fileVec.offset = pos + node->startLBN[FS_DATA_FORMAT] fileVec.offset = pos + ((off_t)node->startLBN[FS_DATA_FORMAT]
* volume->logicalBlkSize[FS_DATA_FORMAT]; * (off_t)volume->logicalBlkSize[FS_DATA_FORMAT]);
fileVec.length = bytesLeft; fileVec.length = bytesLeft;
uint32 vecIndex = 0; uint32 vecIndex = 0;