From 5719481e3ffa66e7b9829f25dc693dd9fc0caf04 Mon Sep 17 00:00:00 2001 From: Nguyen Anh Quynh Date: Thu, 11 Feb 2016 17:53:51 +0800 Subject: [PATCH] move memory_overlap() around from mem_map() to mem_map_check(). this fixes test_mem_map.c in issue #420 --- uc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/uc.c b/uc.c index ab466601fa..4eb04f8f2b 100644 --- a/uc.c +++ b/uc.c @@ -622,10 +622,6 @@ static uc_err mem_map(uc_engine *uc, uint64_t address, size_t size, uint32_t per { MemoryRegion **regions; - // this area overlaps existing mapped regions? - if (memory_overlap(uc, address, size)) - return UC_ERR_MAP; - if (block == NULL) return UC_ERR_NOMEM; @@ -666,6 +662,11 @@ static uc_err mem_map_check(uc_engine *uc, uint64_t address, size_t size, uint32 if ((perms & ~UC_PROT_ALL) != 0) return UC_ERR_ARG; + // this area overlaps existing mapped regions? + if (memory_overlap(uc, address, size)) { + return UC_ERR_MAP; + } + return UC_ERR_OK; }