[gtk/clipboard-test: 2/2] contentserializer: Don't write to a closed stream




commit 13d3ecb486c68ba1245303e98275cf749f89d792
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Apr 26 19:08:40 2021 -0400

    contentserializer: Don't write to a closed stream
    
    It doesn't work. We didn't notice because our
    error checking did not work either :(
    
    This makes text/uri-list transfers work,
    at least on X11 and under weston.

 gdk/gdkcontentdeserializer.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/gdk/gdkcontentdeserializer.c b/gdk/gdkcontentdeserializer.c
index 42f77c0078..08b102201f 100644
--- a/gdk/gdkcontentdeserializer.c
+++ b/gdk/gdkcontentdeserializer.c
@@ -731,7 +731,8 @@ file_uri_deserializer_finish (GObject      *source,
     }
 
   /* write terminating NULL */
-  if (!g_output_stream_write (stream, "", 1, NULL, &error))
+  if (g_output_stream_write (stream, "", 1, NULL, &error) < 0 ||
+      !g_output_stream_close (stream, NULL, &error))
     {
       gdk_content_deserializer_return_error (deserializer, error);
       return;
@@ -771,7 +772,7 @@ file_uri_deserializer (GdkContentDeserializer *deserializer)
 
   g_output_stream_splice_async (output,
                                 gdk_content_deserializer_get_input_stream (deserializer),
-                                G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE | G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET,
+                                G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE,
                                 gdk_content_deserializer_get_priority (deserializer),
                                 gdk_content_deserializer_get_cancellable (deserializer),
                                 file_uri_deserializer_finish,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]