From df33cd08745fdbbd53ee32b1ce8dc5ebc9778eec Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 24 Aug 2020 12:23:01 -0700 Subject: [PATCH] GUACAMOLE-1158: Handle received clipboard data only if copy has not been disabled. --- src/protocols/rdp/channels/cliprdr.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/protocols/rdp/channels/cliprdr.c b/src/protocols/rdp/channels/cliprdr.c index 48c10c2b..6cff2581 100644 --- a/src/protocols/rdp/channels/cliprdr.c +++ b/src/protocols/rdp/channels/cliprdr.c @@ -397,8 +397,19 @@ static UINT guac_rdp_cliprdr_format_data_response(CliprdrClientContext* cliprdr, guac_rdp_clipboard* clipboard = (guac_rdp_clipboard*) cliprdr->custom; assert(clipboard != NULL); - guac_client_log(clipboard->client, GUAC_LOG_TRACE, "CLIPRDR: Received " - "format data response."); + guac_client* client = clipboard->client; + guac_rdp_client* rdp_client = (guac_rdp_client*) client->data; + guac_rdp_settings* settings = rdp_client->settings; + + guac_client_log(client, GUAC_LOG_TRACE, "CLIPRDR: Received format data response."); + + /* Ignore received data if copy has been disabled */ + if (settings->disable_copy) { + guac_client_log(clipboard->client, GUAC_LOG_DEBUG, "Ignoring received " + "clipboard data as copying from within the remote desktop has " + "been explicitly disabled."); + return CHANNEL_RC_OK; + } char received_data[GUAC_RDP_CLIPBOARD_MAX_LENGTH];