advapi32: Return the computer name as referenced domain name in LookupAccountName.

This commit is contained in:
Hans Leidekker 2010-12-10 12:53:25 +01:00 committed by Alexandre Julliard
parent b0c925cdb2
commit eba814763a
1 changed files with 16 additions and 11 deletions

View File

@ -2629,9 +2629,8 @@ static BOOL lookup_user_account_name(PSID Sid, PDWORD cbSid, LPWSTR ReferencedDo
HANDLE token;
BOOL ret;
PSID pSid;
static const WCHAR dm[] = {'D','O','M','A','I','N',0};
WCHAR domainName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD nameLen;
LPCWSTR domainName;
if (!OpenThreadToken(GetCurrentThread(), TOKEN_READ, TRUE, &token))
{
@ -2655,9 +2654,12 @@ static BOOL lookup_user_account_name(PSID Sid, PDWORD cbSid, LPWSTR ReferencedDo
}
*cbSid = GetLengthSid(pSid);
domainName = dm;
nameLen = strlenW(domainName);
nameLen = MAX_COMPUTERNAME_LENGTH + 1;
if (!GetComputerNameW(domainName, &nameLen))
{
domainName[0] = 0;
nameLen = 0;
}
if (*cchReferencedDomainName <= nameLen || !ret)
{
SetLastError(ERROR_INSUFFICIENT_BUFFER);
@ -2683,9 +2685,8 @@ static BOOL lookup_computer_account_name(PSID Sid, PDWORD cbSid, LPWSTR Referenc
{
MAX_SID local;
BOOL ret;
static const WCHAR dm[] = {'D','O','M','A','I','N',0};
WCHAR domainName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD nameLen;
LPCWSTR domainName;
if ((ret = ADVAPI_GetComputerSid(&local)))
{
@ -2699,9 +2700,12 @@ static BOOL lookup_computer_account_name(PSID Sid, PDWORD cbSid, LPWSTR Referenc
*cbSid = GetLengthSid(&local);
}
domainName = dm;
nameLen = strlenW(domainName);
nameLen = MAX_COMPUTERNAME_LENGTH + 1;
if (!GetComputerNameW(domainName, &nameLen))
{
domainName[0] = 0;
nameLen = 0;
}
if (*cchReferencedDomainName <= nameLen || !ret)
{
SetLastError(ERROR_INSUFFICIENT_BUFFER);
@ -2898,11 +2902,12 @@ BOOL WINAPI LookupAccountNameW( LPCWSTR lpSystemName, LPCWSTR lpAccountName, PSI
BOOL ret, handled;
LSA_UNICODE_STRING account;
FIXME("%s %s %p %p %p %p %p - stub\n", debugstr_w(lpSystemName), debugstr_w(lpAccountName),
TRACE("%s %s %p %p %p %p %p\n", debugstr_w(lpSystemName), debugstr_w(lpAccountName),
Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse);
if (!ADVAPI_IsLocalComputer( lpSystemName ))
{
FIXME("remote computer not supported\n");
SetLastError( RPC_S_SERVER_UNAVAILABLE );
return FALSE;
}