about summary refs log tree commit diff stats
path: root/src/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/box32stack.c3
-rw-r--r--src/tools/box64stack.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/tools/box32stack.c b/src/tools/box32stack.c
index 0fa1460e..903996c7 100644
--- a/src/tools/box32stack.c
+++ b/src/tools/box32stack.c
@@ -38,11 +38,12 @@ void SetupInitialStack32(x64emu_t *emu)
     PushString32(emu, emu->context->argv[0]);
     uintptr_t p_arg0 = from_ptr(R_ESP);
     // push envs
-    uintptr_t p_envv[emu->context->envc];
+    uintptr_t p_envv[emu->context->envc+1];
     for (int i=emu->context->envc-1; i>=0; --i) {
         PushString32(emu, emu->context->envv[i]);
         p_envv[i] = from_ptr(R_ESP);
     }
+    p_envv[emu->context->envc] = 0;
     // push args, also, free the argv[] string and point to the one in the main stack
     uintptr_t p_argv[emu->context->argc];
     for (int i=emu->context->argc-1; i>=0; --i) {
diff --git a/src/tools/box64stack.c b/src/tools/box64stack.c
index 9036bda4..8b5249d9 100644
--- a/src/tools/box64stack.c
+++ b/src/tools/box64stack.c
@@ -61,7 +61,8 @@ void SetupInitialStack(x64emu_t *emu)
     PushString(emu, emu->context->argv[0]);
     uintptr_t p_arg0 = R_RSP;
     // push envs
-    uintptr_t p_envv[emu->context->envc];
+    uintptr_t p_envv[emu->context->envc+1];
+    p_envv[emu->context->envc] = 0;
     for (int i=emu->context->envc-1; i>=0; --i) {
         PushString(emu, emu->context->envv[i]);
         box_free(emu->context->envv[i]);