fs.mitm: Fix correctness bug in LayeredRomfs::Read().

This commit is contained in:
SciresM 2018-10-19 12:15:18 +09:00 committed by GitHub
parent d502f3fa3f
commit 85540d4ad2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -124,12 +124,14 @@ Result LayeredRomFS::Read(void *buffer, size_t size, u64 offset) {
fatalSimple(0xF601); fatalSimple(0xF601);
} }
read_so_far += cur_read_size; read_so_far += cur_read_size;
offset += cur_read_size;
} else { } else {
/* Handle padding explicitly. */ /* Handle padding explicitly. */
cur_source_ind++; cur_source_ind++;
/* Zero out the padding we skip, here. */ /* Zero out the padding we skip, here. */
memset((void *)((uintptr_t)buffer + read_so_far), 0, ((*this->p_source_infos)[cur_source_ind]).virtual_offset - (cur_source->virtual_offset + cur_source->size)); memset((void *)((uintptr_t)buffer + read_so_far), 0, ((*this->p_source_infos)[cur_source_ind]).virtual_offset - offset);
read_so_far += ((*this->p_source_infos)[cur_source_ind]).virtual_offset - (cur_source->virtual_offset + cur_source->size); read_so_far += ((*this->p_source_infos)[cur_source_ind]).virtual_offset - offset;
offset = ((*this->p_source_infos)[cur_source_ind]).virtual_offset;
} }
} }