diff --git a/libfreerdp/core/connection.c b/libfreerdp/core/connection.c index 8499cc7f3..71287865f 100644 --- a/libfreerdp/core/connection.c +++ b/libfreerdp/core/connection.c @@ -366,6 +366,22 @@ BOOL rdp_client_redirect(rdpRdp* rdp) return FALSE; } + if (settings->RedirectionFlags & LB_PASSWORD) + { + char *password = NULL; + + /* If unicode conversion fails, this might be because the Password field + * might contain a non-unicode cookie value. Simply ignore in this case. */ + if (ConvertFromUnicode(CP_UTF8, 0, + (WCHAR*) settings->RedirectionPassword, settings->RedirectionPasswordLength, + &password, 0, + NULL, NULL) > 0) + { + free(settings->Password); + settings->Password = password; + } + } + status = rdp_client_connect(rdp); return status;