]> source.dussan.org Git - tigervnc.git/commitdiff
Prevent rendering uninitialized Pixmap contents on X11
authorChristian Authmann <8371862+cauthmann@users.noreply.github.com>
Sun, 11 Nov 2018 09:40:48 +0000 (10:40 +0100)
committerChristian Authmann <8371862+cauthmann@users.noreply.github.com>
Sun, 11 Nov 2018 09:40:48 +0000 (10:40 +0100)
The Pixmap is filled in as updates from the server arrive. Before the first full update, it would contain undefined contents, which would be rendered onto the ViewPort.
Clearing the Pixmap is only done on startup and when changing the server resolution, so it's not performance critical.

vncviewer/PlatformPixelBuffer.cxx

index e6a054ab4a714d73d27fe362562b6a99a205aa6f..be6f70497f400d59f38502ad05e4440f541e5251 100644 (file)
@@ -58,6 +58,9 @@ PlatformPixelBuffer::PlatformPixelBuffer(int width, int height) :
 
   data = (rdr::U8*)xim->data;
   stride = xim->bytes_per_line / (getPF().bpp/8);
+
+  // On X11, the Pixmap backing this Surface is uninitialized.
+  clear(0, 0, 0);
 #else
   FullFramePixelBuffer::data = (rdr::U8*)Surface::data;
   stride = width;