Changeset 3807 for trunk/src


Ignore:
Timestamp:
Jul 7, 2000, 9:06:18 PM (25 years ago)
Author:
sandervl
Message:

Bugfix for NtQueryInformationToken (TOKEN_USER)

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:55 sandervl Exp $ */
     1/* $Id: nt.cpp,v 1.8 2000-07-07 19:06:18 sandervl Exp $ */
    22
    33
     
    357357        break;
    358358    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 {
    361374                return STATUS_BUFFER_TOO_SMALL;
    362         }
    363         memset(TokenInformation, 0, sizeof(TOKEN_USER));
     375        }       
    364376        break;
     377    }
    365378    case TokenPrivileges:
    366379        *ReturnLength = sizeof (TOKEN_PRIVILEGES);
Note: See TracChangeset for help on using the changeset viewer.