From f4ee5226b00905ebe9aabcdd18ae89eb350ab476 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Wed, 18 Jan 2023 10:31:00 +0100 Subject: [PATCH] [core,settings] fix freerdp_settings_set_string_from_utf16N If the input string has a length, but the string length is 0 do not return failure. --- libfreerdp/common/settings.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libfreerdp/common/settings.c b/libfreerdp/common/settings.c index 47605d141..9cd79411d 100644 --- a/libfreerdp/common/settings.c +++ b/libfreerdp/common/settings.c @@ -2048,7 +2048,13 @@ BOOL freerdp_settings_set_string_from_utf16N(rdpSettings* settings, size_t id, c char* str = ConvertWCharNToUtf8Alloc(param, length, &len); if (!str && (length != 0)) - return FALSE; + { + /* If the input string is an empty string, but length > 0 + * consider the conversion a success */ + const size_t wlen = _wcsnlen(param, length); + if (wlen != 0) + return FALSE; + } return freerdp_settings_set_string_(settings, id, str, len, FALSE, TRUE); }