diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/emu/x64int3.c | 1 | ||||
| -rwxr-xr-x | src/libtools/threads.c | 1 |
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 |