about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/emu/x64int3.c1
-rwxr-xr-xsrc/libtools/threads.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/emu/x64int3.c b/src/emu/x64int3.c
index 0be41231..704ddd5a 100755
--- a/src/emu/x64int3.c
+++ b/src/emu/x64int3.c
@@ -61,6 +61,7 @@ x64emu_t* x64emu_fork(x64emu_t* emu, int forktype)
         }
 
     } else if(v==0) {
+        ResetSegmentsCache(emu);
         // execute atforks child functions
         for (int i=0; i<my_context->atfork_sz; --i)
             if(my_context->atforks[i].child)
diff --git a/src/libtools/threads.c b/src/libtools/threads.c
index 820e079c..d1131363 100755
--- a/src/libtools/threads.c
+++ b/src/libtools/threads.c
@@ -247,6 +247,7 @@ static void* pthread_routine(void* p)
 	et->emu->type = EMUTYPE_MAIN;
 	// setup callstack and run...
 	x64emu_t* emu = et->emu;
+	ResetSegmentsCache(emu);
 	Push64(emu, 0);	// PUSH 0 (backtrace marker: return address is 0)
 	Push64(emu, 0);	// PUSH BP
 	R_RBP = R_RSP;	// MOV BP, SP