Fix the wrong block found when doing split_region

This commit is contained in:
lazymio
2022-02-12 21:34:46 +01:00
parent 3c4477d622
commit 96518634fb
2 changed files with 30 additions and 1 deletions

4
uc.c
View File

@ -1198,11 +1198,13 @@ static bool split_region(struct uc_struct *uc, MemoryRegion *mr,
return false;
}
// Find the correct and large enough (which contains our target mr)
// to create the content backup.
QLIST_FOREACH(block, &uc->ram_list.blocks, next)
{
// block->offset is the offset within ram_addr_t, not GPA
if (block->mr->addr <= mr->addr &&
block->used_length >= (mr->end - mr->addr)) {
block->used_length + block->mr->addr >= mr->end) {
break;
}
}