From 0384aa34437fe39626c9087984c8840d176e22e8 Mon Sep 17 00:00:00 2001 From: daniel-k Date: Fri, 24 Jun 2016 20:45:21 +0200 Subject: [PATCH 1/2] kernel/clone_task: also destroy interrupt stack on failure --- hermit/kernel/tasks.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hermit/kernel/tasks.c b/hermit/kernel/tasks.c index 9aae78185..f75037c88 100644 --- a/hermit/kernel/tasks.c +++ b/hermit/kernel/tasks.c @@ -409,8 +409,10 @@ int clone_task(tid_t* id, entry_point_t ep, void* arg, uint8_t prio) kprintf("start new thread %d on core %d with stack address %p\n", i, core_id, stack); out: - if (ret) + if (ret) { destroy_stack(stack, DEFAULT_STACK_SIZE); + destroy_stack(ist, KERNEL_STACK_SIZE); + } #if 0 if (core_id != CORE_ID) From 74c3d4f0ba60373dfa7bd7c8a64ea9aa948a3ea2 Mon Sep 17 00:00:00 2001 From: daniel-k Date: Fri, 24 Jun 2016 21:06:50 +0200 Subject: [PATCH 2/2] kernel/create_task: also destroy interrupt stack on failure --- hermit/kernel/tasks.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hermit/kernel/tasks.c b/hermit/kernel/tasks.c index f75037c88..fe45ba017 100644 --- a/hermit/kernel/tasks.c +++ b/hermit/kernel/tasks.c @@ -512,6 +512,7 @@ out: if (ret) { destroy_stack(stack, DEFAULT_STACK_SIZE); + destroy_stack(ist, KERNEL_STACK_SIZE); kfree(counter); }