From cf8380100eb2221d53f03df08070121e92d5014e Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 12 Dec 2021 17:40:52 +0100 Subject: [PATCH] [KERNEL32] SetComputerNameExW: Truncate the computer name This fixes the SetComputerNameExW api test. --- dll/win32/kernel32/client/compname.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dll/win32/kernel32/client/compname.c b/dll/win32/kernel32/client/compname.c index 2b4b335d4f7..8b9a5497fb3 100644 --- a/dll/win32/kernel32/client/compname.c +++ b/dll/win32/kernel32/client/compname.c @@ -648,6 +648,7 @@ WINAPI SetComputerNameExW(COMPUTER_NAME_FORMAT NameType, LPCWSTR lpBuffer) { + WCHAR szShortName[MAX_COMPUTERNAME_LENGTH + 1]; BOOL ret1, ret2; if (!IsValidComputerName(NameType, lpBuffer)) @@ -670,17 +671,19 @@ SetComputerNameExW(COMPUTER_NAME_FORMAT NameType, L"NV Hostname", lpBuffer); + RtlStringCchCopyNW(szShortName, ARRAYSIZE(szShortName), lpBuffer, MAX_COMPUTERNAME_LENGTH); ret2 = SetComputerNameToRegistry(L"\\Registry\\Machine\\System\\CurrentControlSet" L"\\Control\\ComputerName\\ComputerName", L"ComputerName", - lpBuffer); + szShortName); return (ret1 && ret2); case ComputerNamePhysicalNetBIOS: + RtlStringCchCopyNW(szShortName, ARRAYSIZE(szShortName), lpBuffer, MAX_COMPUTERNAME_LENGTH); return SetComputerNameToRegistry(L"\\Registry\\Machine\\System\\CurrentControlSet" L"\\Control\\ComputerName\\ComputerName", L"ComputerName", - lpBuffer); + szShortName); default: SetLastError(ERROR_INVALID_PARAMETER);