Patchwork spice: add option for disabling copy paste support

login
register
mail settings
Submitter Hans de Goede
Date March 27, 2011, 2:48 p.m.
Message ID <1301237281-3393-1-git-send-email-hdegoede@redhat.com>
Download mbox | patch
Permalink /patch/88509/
State New
Headers show

Comments

Hans de Goede - March 27, 2011, 2:48 p.m.
Some people want to be able disable spice's guest <-> client copy paste support
because of security considerations.
---
 qemu-config.c   |    3 +++
 qemu-options.hx |    3 +++
 ui/spice-core.c |    9 +++++++++
 3 files changed, 15 insertions(+), 0 deletions(-)

Patch

diff --git a/qemu-config.c b/qemu-config.c
index 323d3c2..661c8a8 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -386,6 +386,9 @@  QemuOptsList qemu_spice_opts = {
             .name = "disable-ticketing",
             .type = QEMU_OPT_BOOL,
         },{
+            .name = "disable-copy-paste",
+            .type = QEMU_OPT_BOOL,
+        },{
             .name = "x509-dir",
             .type = QEMU_OPT_STRING,
         },{
diff --git a/qemu-options.hx b/qemu-options.hx
index ef60730..1a38311 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -715,6 +715,9 @@  Set the password you need to authenticate.
 @item disable-ticketing
 Allow client connects without authentication.
 
+@item disable-copy-paste
+Disable copy paste between the client and the guest.
+
 @item tls-port=<nr>
 Set the TCP port spice is listening on for encrypted channels.
 
diff --git a/ui/spice-core.c b/ui/spice-core.c
index ef56ed6..a21fabc 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -554,6 +554,15 @@  void qemu_spice_init(void)
         spice_server_set_noauth(spice_server);
     }
 
+    if (qemu_opt_get_bool(opts, "disable-copy-paste", 0)) {
+#if SPICE_SERVER_VERSION >= 0x000801
+        spice_server_set_agent_copypaste(spice_server, 0);
+#else
+        fprintf(stderr, "spice: disable-copy-paste is only supported when compiled with spice-server >= 0.8.1\n");
+        exit(1);
+#endif
+    }
+
     compression = SPICE_IMAGE_COMPRESS_AUTO_GLZ;
     str = qemu_opt_get(opts, "image-compression");
     if (str) {