diff --git a/reactos/dll/win32/advapi32/sec/misc.c b/reactos/dll/win32/advapi32/sec/misc.c index 4adc3d155fe..f1554df5850 100644 --- a/reactos/dll/win32/advapi32/sec/misc.c +++ b/reactos/dll/win32/advapi32/sec/misc.c @@ -1261,9 +1261,9 @@ LookupAccountNameA(LPCSTR SystemName, WideCharToMultiByte(CP_ACP, 0, lpReferencedDomainNameW, - *hReferencedDomainNameLength, + *hReferencedDomainNameLength + 1, ReferencedDomainName, - *hReferencedDomainNameLength, + *hReferencedDomainNameLength + 1, NULL, NULL); } @@ -1343,13 +1343,16 @@ LookupAccountNameW(LPCWSTR lpSystemName, if (ReferencedDomainName != NULL && (*cchReferencedDomainName > wcslen(dm))) wcscpy(ReferencedDomainName, dm); - if (*cchReferencedDomainName <= wcslen(dm)) + if ((*cchReferencedDomainName <= wcslen(dm)) || (!ret)) { SetLastError(ERROR_INSUFFICIENT_BUFFER); ret = FALSE; + *cchReferencedDomainName = wcslen(dm) + 1; + } + else + { + *cchReferencedDomainName = wcslen(dm); } - - *cchReferencedDomainName = wcslen(dm)+1; FreeSid(pSid);