* PROGRAMMER: Eric Kohl
*/
-#include "precomp.h"
+#include <precomp.h>
+
+#define NDEBUG
+#include <debug.h>
/* FUNCTIONS ***************************************************************/
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;
&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,
if (!NT_SUCCESS (Status))
{
- LocalFree (SidBuffer);
+ LocalFree ((HLOCAL)SidBuffer);
+ SetLastError (RtlNtStatusToDosError (Status));
return FALSE;
}
SidBuffer[0].Sid,
TRUE);
- LocalFree (SidBuffer);
+ LocalFree ((HLOCAL)SidBuffer);
if (!NT_SUCCESS (Status))
- return FALSE;
+ {
+ SetLastError (RtlNtStatusToDosError (Status));
+ return FALSE;
+ }
DPRINT ("SidString.Length: %lu\n", SidString->Length);
DPRINT ("SidString.MaximumLength: %lu\n", SidString->MaximumLength);
return TRUE;
}
+PVOID
+CreateDefaultSD(VOID)
+{
+ /* FIXME - create a default security descriptor */
+ return NULL;
+}
+
/* Dynamic DLL loading interface **********************************************/
/* OLE32.DLL import table */
-DYN_MODULE DynOle32 =
+DYN_MODULE DynOle32 =
{
L"ole32.dll",
{