about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-10-29 10:16:52 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-10-29 10:16:52 +0200
commit09103aa52ef63094e2a24e7fb09ba94abbda8dfa (patch)
treefd979e12355c331fc2b22d019ad9c2eeb545b28e /src
parentee63a9f368f5e0002dab0ad4247458171b4ae426 (diff)
downloadbox64-09103aa52ef63094e2a24e7fb09ba94abbda8dfa.tar.gz
box64-09103aa52ef63094e2a24e7fb09ba94abbda8dfa.zip
[DYNAREC] Fixed a potential issue with free range of dynablock
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynablock.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dynarec/dynablock.c b/src/dynarec/dynablock.c
index f1b1b1f1..43222a2e 100755
--- a/src/dynarec/dynablock.c
+++ b/src/dynarec/dynablock.c
@@ -183,6 +183,7 @@ int FreeRangeDynablock(dynablocklist_t* dynablocks, uintptr_t addr, uintptr_t si
         return 1;
 
     if(dynablocks->direct) {
+        int need_lock = my_context?1:0;
         dynablock_t* db;
         int ret;
         khint_t k;
@@ -210,7 +211,7 @@ int FreeRangeDynablock(dynablocklist_t* dynablocks, uintptr_t addr, uintptr_t si
             }
         // purge the list
         kh_foreach_value(blocks, db,
-            FreeDynablock(db, 1);
+            FreeDynablock(db, need_lock);
         );
         kh_destroy(dynablocks, blocks);
         // check emptyness