forked from AuroraMiddleware/gtk
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:
parent
48ea0cbe4b
commit
25885ca600
@ -272,6 +272,7 @@ gdk_wayland_selection_new (void)
|
|||||||
selection->selection_buffers =
|
selection->selection_buffers =
|
||||||
g_hash_table_new_full (NULL, NULL, NULL,
|
g_hash_table_new_full (NULL, NULL, NULL,
|
||||||
(GDestroyNotify) selection_buffer_cancel_and_unref);
|
(GDestroyNotify) selection_buffer_cancel_and_unref);
|
||||||
|
selection->stored_selection.fd = -1;
|
||||||
return selection;
|
return selection;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,6 +400,8 @@ async_write_data_new (GdkWaylandSelection *selection)
|
|||||||
static void
|
static void
|
||||||
async_write_data_free (AsyncWriteData *write_data)
|
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_object_unref (write_data->stream);
|
||||||
g_slice_free (AsyncWriteData, write_data);
|
g_slice_free (AsyncWriteData, write_data);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user