From 6bdda5357fcfa7a4362ae3a639f95b604f30647a Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sun, 17 May 2009 21:51:31 +0000 Subject: [PATCH] MmGrowKernelStack: Don't assert, but fail, when the kernel stack can't grow any more. Fixes a crash with recursive user calls. See issue #4060 for more details. svn path=/trunk/; revision=40963 --- reactos/ntoskrnl/mm/procsup.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/reactos/ntoskrnl/mm/procsup.c b/reactos/ntoskrnl/mm/procsup.c index 91c2499d648..4a04c797a13 100644 --- a/reactos/ntoskrnl/mm/procsup.c +++ b/reactos/ntoskrnl/mm/procsup.c @@ -259,8 +259,11 @@ MmGrowKernelStack(PVOID StackPointer) PETHREAD Thread = PsGetCurrentThread(); /* Make sure we have reserved space for our grow */ - ASSERT(((PCHAR)Thread->Tcb.StackBase - (PCHAR)Thread->Tcb.StackLimit) <= - (KERNEL_LARGE_STACK_SIZE + PAGE_SIZE)); + if (((PCHAR)Thread->Tcb.StackBase - (PCHAR)Thread->Tcb.StackLimit) > + (KERNEL_LARGE_STACK_SIZE + PAGE_SIZE)) + { + return STATUS_NO_MEMORY; + } /* * We'll give you three more pages.