diff --git a/src/lib/core/fiber.c b/src/lib/core/fiber.c index dde556b85d9d110dab140c3969fb955a92f1750c..a7dc665ff3b80c6eb410c0963d813eb39240f4d6 100644 --- a/src/lib/core/fiber.c +++ b/src/lib/core/fiber.c @@ -926,7 +926,11 @@ fiber_stack_create(struct fiber *fiber, size_t stack_size) (char *)fiber->stack + fiber->stack_size); - fiber_mprotect(guard, page_size, PROT_NONE); + if (fiber_mprotect(guard, page_size, PROT_NONE)) { + fiber_stack_destroy(fiber, &cord()->slabc); + return -1; + } + fiber_stack_watermark_create(fiber); return 0; }