kernelbase: Remove trailing dot in GetComputerNameExW() when domain name is empty.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48293
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Alexandre Julliard 2020-01-05 17:30:34 +01:00
parent d96331d830
commit b276bda5a2
1 changed files with 7 additions and 5 deletions

View File

@ -3146,13 +3146,15 @@ BOOL WINAPI GetComputerNameExW( COMPUTER_NAME_FORMAT type, WCHAR *name, DWORD *l
case ComputerNameDnsFullyQualified:
case ComputerNamePhysicalDnsFullyQualified:
{
WCHAR buffer[256];
DWORD size = ARRAY_SIZE(buffer);
WCHAR *domain, buffer[256];
DWORD size = ARRAY_SIZE(buffer) - 1;
if (!GetComputerNameExW( ComputerNameDnsHostname, buffer, &size )) return FALSE;
lstrcatW( buffer, L"." );
size = ARRAY_SIZE(buffer) - lstrlenW(buffer);
if (!GetComputerNameExW( ComputerNameDnsDomain, buffer + lstrlenW(buffer), &size )) return FALSE;
domain = buffer + lstrlenW(buffer);
*domain++ = '.';
size = ARRAY_SIZE(buffer) - (domain - buffer);
if (!GetComputerNameExW( ComputerNameDnsDomain, domain, &size )) return FALSE;
if (!*domain) domain[-1] = 0;
size = lstrlenW(buffer);
if (name && size < *len)
{