Module: wine Branch: master Commit: b276bda5a21df595973e3ad5552c66a1799f5d3c URL: https://source.winehq.org/git/wine.git/?a=commit;h=b276bda5a21df595973e3ad55...
Author: Alexandre Julliard julliard@winehq.org Date: Sun Jan 5 17:30:34 2020 +0100
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
---
dlls/kernelbase/registry.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/kernelbase/registry.c b/dlls/kernelbase/registry.c index 72b7711714..137c0efb88 100644 --- a/dlls/kernelbase/registry.c +++ b/dlls/kernelbase/registry.c @@ -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) {