From 242138f832905d01d6775c8df91e9b978021dc1e Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Tue, 7 Sep 1999 20:41:47 +0000 Subject: [PATCH] Fixed little bug. svn path=/trunk/; revision=648 --- reactos/lib/ntdll/rtl/thread.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/reactos/lib/ntdll/rtl/thread.c b/reactos/lib/ntdll/rtl/thread.c index 5bca654a2e2..2652ccef056 100644 --- a/reactos/lib/ntdll/rtl/thread.c +++ b/reactos/lib/ntdll/rtl/thread.c @@ -197,13 +197,15 @@ DPRINT("Checkpoint\n"); /* Begin of test code */ - HANDLE LocalThreadHandle; - CLIENT_ID LocalClientId; - OBJECT_ATTRIBUTES ObjectAttributes; - INITIAL_TEB InitialTeb; - CONTEXT ThreadContext; - PVOID BaseAddress; - NTSTATUS Status; + HANDLE LocalThreadHandle; + CLIENT_ID LocalClientId; + OBJECT_ATTRIBUTES ObjectAttributes; + INITIAL_TEB InitialTeb; + CONTEXT ThreadContext; + PVOID BaseAddress; + ULONG LocalStackCommit; + ULONG LocalStackReserve; + NTSTATUS Status; ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES); ObjectAttributes.RootDirectory = NULL; @@ -214,14 +216,16 @@ DPRINT("Checkpoint\n"); ObjectAttributes.SecurityQualityOfService = NULL; - if (*StackCommit < 4096) - *StackCommit = 4096; + if ((StackCommit != NULL) && (*StackCommit > 4096)) + LocalStackCommit = *StackCommit; + else + LocalStackCommit = 4096; BaseAddress = 0; ZwAllocateVirtualMemory(ProcessHandle, &BaseAddress, 0, - StackCommit, + &LocalStackCommit, MEM_COMMIT, PAGE_READWRITE); @@ -234,7 +238,7 @@ DPRINT("Checkpoint\n"); ThreadContext.SegDs = USER_DS; ThreadContext.SegCs = USER_CS; ThreadContext.SegSs = USER_DS; - ThreadContext.Esp = (ULONG)(BaseAddress + *StackCommit); + ThreadContext.Esp = (ULONG)(BaseAddress + LocalStackCommit); ThreadContext.EFlags = (1<<1) + (1<<9); @@ -247,13 +251,15 @@ DPRINT("Checkpoint\n"); &InitialTeb, CreateSuspended); -// if ( lpThreadId != NULL ) -// memcpy(lpThreadId, &ClientId.UniqueThread,sizeof(ULONG)); - /* End of test code */ DPRINT("Checkpoint\n"); + + if (StackCommit) + *StackCommit = LocalStackCommit; + + /* return thread handle */ if (ThreadHandle) *ThreadHandle = LocalThreadHandle;