From ea45c148c075091a03bf00f5cb1c7708048894d8 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 17 Jan 2017 16:27:56 +0100 Subject: [PATCH] Return OK in case of channel not connected. --- libfreerdp/core/client.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libfreerdp/core/client.c b/libfreerdp/core/client.c index 22866ffa3..eb330386a 100644 --- a/libfreerdp/core/client.c +++ b/libfreerdp/core/client.c @@ -989,14 +989,16 @@ static UINT VCAPITYPE FreeRDP_VirtualChannelWriteEx(LPVOID pInitHandle, DWORD op if (!channels) return CHANNEL_RC_BAD_CHANNEL_HANDLE; + /* If a channel is not connected do not send the data but ignore it. + * Return success to allow terminating channel threads to end gracefully. */ + if (!channels->connected) + return CHANNEL_RC_OK; + pChannelOpenData = HashTable_GetItemValue(channels->openHandles, (void*)(UINT_PTR) openHandle); if (!pChannelOpenData) return CHANNEL_RC_BAD_CHANNEL_HANDLE; - if (!channels->connected) - return CHANNEL_RC_NOT_CONNECTED; - if (!pData) return CHANNEL_RC_NULL_DATA;