[Spice-devel] [spice-gtk 1/2] Fix empty clipboard check
Christophe Fergeau
cfergeau at redhat.com
Mon Nov 17 06:17:31 PST 2014
SpiceGtkSession::clipboard_received_cb starts by checking if the
length of the X selection data is not 0. However, right after this check,
if gtk_selection_data_get_length() returned -1, it decides it got an
empty clipboard, sets the selection length to 0, and does not return
early.
This commit reworks the len == 0 / len == -1 checks to make sure we
always return early when we get no data from the clipboard.
---
gtk/spice-gtk-session.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gtk/spice-gtk-session.c b/gtk/spice-gtk-session.c
index 10bd762..26a0ecf 100644
--- a/gtk/spice-gtk-session.c
+++ b/gtk/spice-gtk-session.c
@@ -852,12 +852,12 @@ static void clipboard_received_cb(GtkClipboard *clipboard,
g_object_get(s->main, "max-clipboard", &max_clipboard, NULL);
len = gtk_selection_data_get_length(selection_data);
- if (len == 0 || (max_clipboard != -1 && len > max_clipboard)) {
+ if (max_clipboard != -1 && len > max_clipboard) {
g_warning("discarded clipboard of size %d (max: %d)", len, max_clipboard);
return;
- } else if (len == -1) {
- SPICE_DEBUG("empty clipboard");
- len = 0;
+ } else if (len <= 0) {
+ SPICE_DEBUG("discarding empty clipboard");
+ return;
} else {
atom = gtk_selection_data_get_data_type(selection_data);
name = gdk_atom_name(atom);
--
2.1.0
More information about the Spice-devel
mailing list