st-clipboard: Add trailing 0 to pasted text
We translate the raw stream content far too directly into a char*, it notably forgets that the stream does not have nul-ended data, this means we are potentially adding garbage after the pasted content. Tentatively fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1570
This commit is contained in:
parent
406d0900a7
commit
8d9cae45f9
@ -128,14 +128,22 @@ transfer_cb (MetaSelection *selection,
|
|||||||
GAsyncResult *res,
|
GAsyncResult *res,
|
||||||
TransferData *data)
|
TransferData *data)
|
||||||
{
|
{
|
||||||
const gchar *text = NULL;
|
gchar *text = NULL;
|
||||||
|
|
||||||
if (meta_selection_transfer_finish (selection, res, NULL))
|
if (meta_selection_transfer_finish (selection, res, NULL))
|
||||||
text = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (data->stream));
|
{
|
||||||
|
gsize data_size;
|
||||||
|
|
||||||
|
data_size =
|
||||||
|
g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (data->stream));
|
||||||
|
text = g_new0 (char, data_size + 1);
|
||||||
|
memcpy (text, g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (data->stream)), data_size);
|
||||||
|
}
|
||||||
|
|
||||||
data->callback (data->clipboard, text, data->user_data);
|
data->callback (data->clipboard, text, data->user_data);
|
||||||
g_object_unref (data->stream);
|
g_object_unref (data->stream);
|
||||||
g_free (data);
|
g_free (data);
|
||||||
|
g_free (text);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user