qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] VNC Segfault : was Re: Segfault installing Windows XP 3


From: Brad Campbell
Subject: Re: [Qemu-devel] VNC Segfault : was Re: Segfault installing Windows XP 32 Bit guest on Linux 64Bit host
Date: Sat, 31 May 2008 10:19:54 +0400
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

Eduardo Felipe wrote:
This seems related to a problem discussed here some time ago:

Yep!

http://lists.gnu.org/archive/html/qemu-devel/2007-10/msg00104.html

If it is so, to reproduce it just use a client without DesktopSize pseudoencoding and tell the guest OS to scale down his window. A segfault will follow in the next SetPixelFormat received by qemu.

Regards,
Edu

P.S. (I don't know if my original patch already applies)

It was already sorta integrated by the looks of it.. but not completely.

Patch attached.

Thanks all!
Brad
--
"Human beings, who are almost unique in having the ability
to learn from the experience of others, are also remarkable
for their apparent disinclination to do so." -- Douglas Adams
Index: vnc.c
===================================================================
--- vnc.c       (revision 4632)
+++ vnc.c       (working copy)
@@ -307,12 +307,14 @@
     ds->width = w;
     ds->height = h;
     ds->linesize = w * vs->depth;
-    if (vs->csock != -1 && vs->has_resize && size_changed) {
-       vnc_write_u8(vs, 0);  /* msg id */
-       vnc_write_u8(vs, 0);
-       vnc_write_u16(vs, 1); /* number of rects */
-       vnc_framebuffer_update(vs, 0, 0, ds->width, ds->height, -223);
-       vnc_flush(vs);
+    if (size_changed) {
+        if (vs->csock != -1 && vs->has_resize && size_changed) {
+           vnc_write_u8(vs, 0);  /* msg id */
+           vnc_write_u8(vs, 0);
+           vnc_write_u16(vs, 1); /* number of rects */
+           vnc_framebuffer_update(vs, 0, 0, ds->width, ds->height, -223);
+           vnc_flush(vs);
+       }
        vs->width = ds->width;
        vs->height = ds->height;
     }

reply via email to

[Prev in Thread] Current Thread [Next in Thread]