瀏覽代碼

ui: reject extended clipboard message if not activated

The extended clipboard message protocol requires that the client
activate the extension by requesting a psuedo encoding. If this
is not done, then any extended clipboard messages from the client
should be considered invalid and the client dropped.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20240115095119.654271-1-berrange@redhat.com>
Daniel P. Berrangé 1 年之前
父節點
當前提交
4cba838896
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      ui/vnc.c

+ 5 - 0
ui/vnc.c

@@ -2445,6 +2445,11 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len)
         }
         }
 
 
         if (read_s32(data, 4) < 0) {
         if (read_s32(data, 4) < 0) {
+            if (!vnc_has_feature(vs, VNC_FEATURE_CLIPBOARD_EXT)) {
+                error_report("vnc: extended clipboard message while disabled");
+                vnc_client_error(vs);
+                break;
+            }
             if (dlen < 4) {
             if (dlen < 4) {
                 error_report("vnc: malformed payload (header less than 4 bytes)"
                 error_report("vnc: malformed payload (header less than 4 bytes)"
                              " in extended clipboard pseudo-encoding.");
                              " in extended clipboard pseudo-encoding.");