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
This commit is contained in:
Timo Kreuzer 2009-05-17 21:51:31 +00:00
parent 0d1d176048
commit 6bdda5357f

View file

@ -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.