Use settings string setter to overwrite computername
authorakallabeth <akallabeth@posteo.net>
Tue, 1 Sep 2020 09:15:44 +0000 (11:15 +0200)
committerakallabeth <akallabeth@users.noreply.github.com>
Tue, 1 Dec 2020 14:10:23 +0000 (15:10 +0100)
(cherry picked from commit 4d7cddd7c64c75d824d8a1eb0babcfc71f0df8d4)

libfreerdp/core/settings.c

index 25d2390..2ea2137 100644 (file)
@@ -244,32 +244,16 @@ static void settings_load_hkey_local_machine(rdpSettings* settings)
 
 static BOOL settings_get_computer_name(rdpSettings* settings)
 {
-       DWORD nSize = 0;
-       CHAR* computerName;
-
-       if (GetComputerNameExA(ComputerNameNetBIOS, NULL, &nSize) || GetLastError() != ERROR_MORE_DATA)
-               return FALSE;
-
-       computerName = calloc(nSize, sizeof(CHAR));
-
-       if (!computerName)
-               return FALSE;
+       CHAR computerName[256];
+       DWORD nSize = sizeof(computerName);
 
        if (!GetComputerNameExA(ComputerNameNetBIOS, computerName, &nSize))
-       {
-               free(computerName);
                return FALSE;
-       }
 
        if (nSize > MAX_COMPUTERNAME_LENGTH)
                computerName[MAX_COMPUTERNAME_LENGTH] = '\0';
 
-       settings->ComputerName = computerName;
-
-       if (!settings->ComputerName)
-               return FALSE;
-
-       return TRUE;
+       return freerdp_settings_set_string(settings, FreeRDP_ComputerName, computerName);
 }
 
 BOOL freerdp_settings_set_default_order_support(rdpSettings* settings)