wayland: Properly initialize/finalize where we store the data_source.send fd

The fd must be closed on async_write_data_free(), but we should also
initialize it to -1 so gdk_wayland_selection_check_write() doesn't wrongly
pick the stdin fd.

https://bugzilla.gnome.org/show_bug.cgi?id=751414
This commit is contained in:
Carlos Garnacho 2015-06-24 11:27:20 +02:00
parent 48ea0cbe4b
commit 25885ca600

View File

@ -272,6 +272,7 @@ gdk_wayland_selection_new (void)
selection->selection_buffers =
g_hash_table_new_full (NULL, NULL, NULL,
(GDestroyNotify) selection_buffer_cancel_and_unref);
selection->stored_selection.fd = -1;
return selection;
}
@ -399,6 +400,8 @@ async_write_data_new (GdkWaylandSelection *selection)
static void
async_write_data_free (AsyncWriteData *write_data)
{
close (write_data->selection->stored_selection.fd);
write_data->selection->stored_selection.fd = -1;
g_object_unref (write_data->stream);
g_slice_free (AsyncWriteData, write_data);
}