diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-11-30 21:42:19 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-11-30 21:42:19 -0500 |
commit | 3e7618fef7858fe90dfffee9db951d30009dedf8 (patch) | |
tree | f87da9a10713ca80b6b14b184948d987c01acb7e | |
parent | 5b1b75b055d0e40ee5c399aec2fb15ade7ef535b (diff) | |
download | gtk+-3e7618fef7858fe90dfffee9db951d30009dedf8.tar.gz |
textbuffer: Try harder to fix pasting
It turns out we can't just use the size returned
by the memory stream as-is, since it may contain
unfilled garbage at the end, which utf8 validation
will choke on. So, cut it off at the first '\0'
we find.
-rw-r--r-- | gtk/gtktextbuffer.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c index a99b25a940..c2cd148868 100644 --- a/gtk/gtktextbuffer.c +++ b/gtk/gtktextbuffer.c @@ -327,6 +327,8 @@ gtk_text_buffer_deserialize_text_plain_finish (GObject *source, if (data) { + if (memchr (data, '\0', size)) + size = -1; buffer = g_value_get_object (gdk_content_deserializer_get_value (deserializer)); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_insert (buffer, &end, data, size); |