Alexandre Julliard : kernelbase: Remove trailing dot in GetComputerNameExW() when domain name is empty.
Alexandre Julliard
julliard at winehq.org
Sun Jan 5 13:18:20 CST 2020
Module: wine
Branch: master
Commit: b276bda5a21df595973e3ad5552c66a1799f5d3c
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b276bda5a21df595973e3ad5552c66a1799f5d3c
Author: Alexandre Julliard <julliard at 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 at 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)
{
More information about the wine-cvs
mailing list