- Timestamp:
- Jul 7, 2000, 9:06:18 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/NTDLL/nt.cpp
r3611 r3807 1 /* $Id: nt.cpp,v 1. 7 2000-05-26 18:51:55sandervl Exp $ */1 /* $Id: nt.cpp,v 1.8 2000-07-07 19:06:18 sandervl Exp $ */ 2 2 3 3 … … 357 357 break; 358 358 case TokenUser: /* 1 */ 359 *ReturnLength = sizeof (TOKEN_USER); 360 if(TokenInformationLength < sizeof (TOKEN_USER)) { 359 { 360 int len = sizeof (TOKEN_USER) + sizeof(SID); 361 *ReturnLength = len; 362 if(len <= TokenInformationLength) { 363 if(TokenInformation) 364 { 365 TOKEN_USER *tuser = (TOKEN_USER *)TokenInformation; 366 PSID sid = (PSID) &((LPBYTE)TokenInformation)[sizeof(TOKEN_USER)]; 367 SID_IDENTIFIER_AUTHORITY localSidAuthority = {SECURITY_NT_AUTHORITY}; 368 RtlInitializeSid(sid, &localSidAuthority, 1); 369 *(RtlSubAuthoritySid(sid, 0)) = SECURITY_INTERACTIVE_RID; 370 tuser->User.Sid = sid; 371 } 372 } 373 else { 361 374 return STATUS_BUFFER_TOO_SMALL; 362 } 363 memset(TokenInformation, 0, sizeof(TOKEN_USER)); 375 } 364 376 break; 377 } 365 378 case TokenPrivileges: 366 379 *ReturnLength = sizeof (TOKEN_PRIVILEGES);
Note:
See TracChangeset
for help on using the changeset viewer.