]> source.dussan.org Git - tigervnc.git/commitdiff
Call correct wrappers for clipboard handling
authorPierre Ossman <ossman@cendio.se>
Fri, 21 Aug 2020 13:52:45 +0000 (15:52 +0200)
committerPierre Ossman <ossman@cendio.se>
Fri, 21 Aug 2020 13:52:45 +0000 (15:52 +0200)
We incorrectly called the underlying functions instead of the safe
wrappers for the new clipboard functions. This had the effect of a)
crashing the entire server if one of these functions failed, and b) not
respecting the settings disabling the clipboard.

common/rfb/VNCServerST.cxx

index 35f65a2edc6a12e639044926df94284d20cdf9e4..f09715a41d82ae7a526eafd28c352be7c1a4619d 100644 (file)
@@ -339,7 +339,7 @@ void VNCServerST::requestClipboard()
   if (clipboardClient == NULL)
     return;
 
-  clipboardClient->requestClipboard();
+  clipboardClient->requestClipboardOrClose();
 }
 
 void VNCServerST::announceClipboard(bool available)
@@ -353,7 +353,7 @@ void VNCServerST::announceClipboard(bool available)
 
   for (ci = clients.begin(); ci != clients.end(); ci = ci_next) {
     ci_next = ci; ci_next++;
-    (*ci)->announceClipboard(available);
+    (*ci)->announceClipboardOrClose(available);
   }
 }
 
@@ -367,7 +367,7 @@ void VNCServerST::sendClipboardData(const char* data)
   for (ci = clipboardRequestors.begin();
        ci != clipboardRequestors.end(); ci = ci_next) {
     ci_next = ci; ci_next++;
-    (*ci)->sendClipboardData(data);
+    (*ci)->sendClipboardDataOrClose(data);
   }
 
   clipboardRequestors.clear();