From 09103aa52ef63094e2a24e7fb09ba94abbda8dfa Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 29 Oct 2022 10:16:52 +0200 Subject: [DYNAREC] Fixed a potential issue with free range of dynablock --- src/dynarec/dynablock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') 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 -- cgit 1.4.1