[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH 02/11] kernel2: Fix für Stackunderflow bei neuem Thread



! kernel2: Das Argument für den neuen Thread gehört als erstes auf den
  Stack gelegt, aber innerhalb des Stacks sollte es schon noch sein.

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/kernel2/src/syscalls/pm.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/kernel2/src/syscalls/pm.c b/src/kernel2/src/syscalls/pm.c
index f2f869c..2bcabef 100644
--- a/src/kernel2/src/syscalls/pm.c
+++ b/src/kernel2/src/syscalls/pm.c
@@ -394,8 +394,11 @@ tid_t syscall_pm_create_thread(vaddr_t start, void *arg)
 
     interrupt_stack_frame_t *isf = (interrupt_stack_frame_t *)thread->user_isf;
 
+    /* Parameter auf den Userspace-Stack kopieren */
+    isf->esp -= sizeof(void *);
     *((void **)(isf->esp)) = arg;
 
+    /* Rücksprungadresse leer lassen */
     isf->esp -= sizeof(void *);
 
     while (pm_thread_unblock(thread) == true);
-- 
1.7.7