Skip to content

Commit 85540d4

Browse files
authored
fs.mitm: Fix correctness bug in LayeredRomfs::Read().
1 parent d502f3f commit 85540d4

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

stratosphere/fs_mitm/source/fsmitm_layeredrom.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,14 @@ Result LayeredRomFS::Read(void *buffer, size_t size, u64 offset) {
124124
fatalSimple(0xF601);
125125
}
126126
read_so_far += cur_read_size;
127+
offset += cur_read_size;
127128
} else {
128129
/* Handle padding explicitly. */
129130
cur_source_ind++;
130131
/* Zero out the padding we skip, here. */
131-
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));
132-
read_so_far += ((*this->p_source_infos)[cur_source_ind]).virtual_offset - (cur_source->virtual_offset + cur_source->size);
132+
memset((void *)((uintptr_t)buffer + read_so_far), 0, ((*this->p_source_infos)[cur_source_ind]).virtual_offset - offset);
133+
read_so_far += ((*this->p_source_infos)[cur_source_ind]).virtual_offset - offset;
134+
offset = ((*this->p_source_infos)[cur_source_ind]).virtual_offset;
133135
}
134136
}
135137

0 commit comments

Comments
 (0)