about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-07-17 18:01:24 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-07-17 18:01:24 +0200
commit8ad472c11831c32831d6681b0e71009e2ec0f253 (patch)
tree776dbbdc1d9e780757401e71259e7d88352a3000 /src
parentfd6895782fc12a949781507361198a7f9a4566b5 (diff)
downloadbox64-8ad472c11831c32831d6681b0e71009e2ec0f253.tar.gz
box64-8ad472c11831c32831d6681b0e71009e2ec0f253.zip
don't try to restore pointer in my___libc_start_main if quit is true for current emu struct
Diffstat (limited to 'src')
-rwxr-xr-xsrc/emu/x64run_private.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c
index 20d2c870..d2003a90 100755
--- a/src/emu/x64run_private.c
+++ b/src/emu/x64run_private.c
@@ -55,9 +55,11 @@ int32_t EXPORT my___libc_start_main(x64emu_t* emu, int *(main) (int, char * *, c
 
     DynaRun(emu);
 
-    SetRSP(emu, GetRBP(emu));   // restore RSP
-    SetRBP(emu, Pop64(emu));         // restore RBP
-    emu->quit = 1;  // finished!
+    if(!emu->quit) {
+        SetRSP(emu, GetRBP(emu));   // restore RSP
+        SetRBP(emu, Pop64(emu));         // restore RBP
+        emu->quit = 1;  // finished!
+    }
     return 0;
 }