From eb264949baf53f8bbbb02b5b89646d79845b5d3a Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Mon, 9 Jan 2006 11:14:26 +0000 Subject: [PATCH] fixed growing the buffer svn path=/trunk/; revision=20749 --- reactos/lib/userenv/misc.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/reactos/lib/userenv/misc.c b/reactos/lib/userenv/misc.c index 93c5fd4851b..4921bc2bae1 100644 --- a/reactos/lib/userenv/misc.c +++ b/reactos/lib/userenv/misc.c @@ -51,12 +51,12 @@ BOOL GetUserSidFromToken (HANDLE hToken, PUNICODE_STRING SidString) { - PSID_AND_ATTRIBUTES SidBuffer; + PSID_AND_ATTRIBUTES SidBuffer, nsb; ULONG Length; NTSTATUS Status; Length = 256; - SidBuffer = LocalAlloc (0, + SidBuffer = LocalAlloc (LMEM_FIXED, Length); if (SidBuffer == NULL) return FALSE; @@ -68,12 +68,16 @@ GetUserSidFromToken (HANDLE hToken, &Length); if (Status == STATUS_BUFFER_TOO_SMALL) { - SidBuffer = LocalReAlloc (SidBuffer, - Length, - 0); - if (SidBuffer == NULL) - return FALSE; + nsb = LocalReAlloc (SidBuffer, + Length, + LMEM_MOVEABLE); + if (nsb == NULL) + { + LocalFree((HLOCAL)SidBuffer); + return FALSE; + } + SidBuffer = nsb; Status = NtQueryInformationToken (hToken, TokenUser, (PVOID)SidBuffer, @@ -83,7 +87,7 @@ GetUserSidFromToken (HANDLE hToken, if (!NT_SUCCESS (Status)) { - LocalFree (SidBuffer); + LocalFree ((HLOCAL)SidBuffer); return FALSE; } @@ -93,7 +97,7 @@ GetUserSidFromToken (HANDLE hToken, SidBuffer[0].Sid, TRUE); - LocalFree (SidBuffer); + LocalFree ((HLOCAL)SidBuffer); if (!NT_SUCCESS (Status)) return FALSE;