Commit 8e16cf2c for guacamole.apache.org
commit 8e16cf2c062895a77f0fe9ed56f66c4d4b099d4e
Merge: 7ca6234a 17c9908c
Author: Virtually Nick <necouchman@users.noreply.github.com>
Date: Thu May 7 21:40:45 2026 -0400
GUACAMOLE-2268: Merge gate VNC UTF-8 (Extended Clipboard) support behind config check.
diff --cc src/protocols/vnc/clipboard.c
index 4af5b458,9db58b61..ec18e402
--- a/src/protocols/vnc/clipboard.c
+++ b/src/protocols/vnc/clipboard.c
@@@ -140,15 -132,10 +141,16 @@@ int guac_vnc_clipboard_end_handler(guac
vnc_client->clipboard->length))
return 0;
}
+ #endif
/* Fall back to classic clipboard with encoding conversion */
- char output_data[GUAC_COMMON_CLIPBOARD_MAX_LENGTH];
+ char* output_data = guac_mem_alloc(GUAC_COMMON_CLIPBOARD_MAX_LENGTH);
+ if (output_data == NULL) {
+ guac_client_log(client, GUAC_LOG_WARNING,
+ "Clipboard conversion failed: unable to allocate output "
+ "buffer.");
+ return 1;
+ }
const char* input = vnc_client->clipboard->buffer;
char* output = output_data;
@@@ -194,10 -174,9 +196,11 @@@ void guac_vnc_cut_text(rfbClient* clien
guac_common_clipboard_append(vnc_client->clipboard, received_data, output - received_data);
guac_common_clipboard_send(vnc_client->clipboard, gc);
+ guac_mem_free(received_data);
+
}
+ #ifdef LIBVNC_CLIENT_HAS_EXTENDED_CLIPBOARD
void guac_vnc_cut_text_utf8(rfbClient* client, const char* text, int textlen) {
guac_client* gc = rfbClientGetClientData(client, GUAC_VNC_CLIENT_KEY);
@@@ -229,6 -202,5 +232,7 @@@
guac_common_clipboard_append(vnc_client->clipboard, received_data, output - received_data);
guac_common_clipboard_send(vnc_client->clipboard, gc);
+ guac_mem_free(received_data);
+
}
+ #endif