Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//
// csecattr.cpp
//
#include "private.h"
#include "osver.h"
#include "csecattr.h"
extern TCHAR g_szUserSidString[]; extern BOOL g_fUserSidString; extern BOOL InitUserSidString();
//----------------------------------------------------------------------------
//
// CreateProperSecurityDescriptor
//
//----------------------------------------------------------------------------
BOOL CreateProperSecurityDescriptor(HANDLE hToken, PSECURITY_DESCRIPTOR * ppsdec) { PSECURITY_DESCRIPTOR psdec = NULL; PSECURITY_DESCRIPTOR psdAbs = NULL; DWORD dwSizeSdec = 0; BOOL bRet = FALSE; TCHAR strDesc[MAX_PATH];
if (!InitUserSidString()) return FALSE;
//construct the descriptor as "O:(user SID)G:DU:(A;;GA;;;SY)(A;;GA;;;BA)(A;;GA;;;(user SID))"
lstrcpy(strDesc, "O:"); lstrcat(strDesc, g_szUserSidString); lstrcat(strDesc, "D:(A;;GA;;;BA)(A;;GA;;;RC)(A;;GA;;;SY)(A;;GA;;;"); lstrcat(strDesc, g_szUserSidString); lstrcat(strDesc, ")");
if (ConvertStringSecurityDescriptorToSecurityDescriptor(strDesc, SDDL_REVISION_1, &psdec, &dwSizeSdec)) { *ppsdec = psdec; bRet = TRUE; }
return bRet; }
|