diff --git a/limine.bin b/limine.bin index bc696fbc..de9bc54a 100644 Binary files a/limine.bin and b/limine.bin differ diff --git a/stage2/fs/ext2.c b/stage2/fs/ext2.c index 35bfa323..485b3704 100644 --- a/stage2/fs/ext2.c +++ b/stage2/fs/ext2.c @@ -262,9 +262,9 @@ static struct ext4_extent_header* ext4_find_leaf(struct ext4_extent_header* ext_ if (--i < 0) panic("extent not found"); - uint64_t block = (index[i].leaf_hi << 32) | index[i].leaf; + uint64_t block = ((uint64_t)index[i].leaf_hi << 32) | index[i].leaf; if(!buf) - buf = balloc(block_size); + buf = conv_mem_alloc(block_size); read_partition(drive, part, buf, (block * block_size), block_size); ext_block = buf; } @@ -305,7 +305,7 @@ static int inode_read(void *buf, uint64_t loc, uint64_t count, if (block >= ext[i].len) { panic("block longer than extent"); } else { - uint64_t start = (ext[i].start_hi << 32) + ext[i].start; + uint64_t start = ((uint64_t)ext[i].start_hi << 32) + ext[i].start; block_index = start + block; } } else {