vnc: Fix incorrect attempt to clear a flag
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 7 Apr 2009 19:57:09 +0000 (19:57 +0000)
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 7 Apr 2009 19:57:09 +0000 (19:57 +0000)
In vnc.c in pixel_format_message, the code tries to clear the
QEMU_ALLOCATED_FLAG from the client display surface, however
it uses the wrong operator and ends up enabling all other
flags. Most notably this enables the big endian flag and
causes some chaos.

Signed-off-by: Brian Kress <kressb@moose.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7022 c046a42c-6fe2-441c-8c8c-71466251a162

vnc.c

diff --git a/vnc.c b/vnc.c
index 6d93215..ab1f044 100644 (file)
--- a/vnc.c
+++ b/vnc.c
@@ -1598,7 +1598,7 @@ static void pixel_format_message (VncState *vs) {
     else if (vs->ds->surface->pf.bits_per_pixel == 8)
         vs->send_hextile_tile = send_hextile_tile_8;
     vs->clientds = *(vs->ds->surface);
-    vs->clientds.flags |= ~QEMU_ALLOCATED_FLAG;
+    vs->clientds.flags &= ~QEMU_ALLOCATED_FLAG;
     vs->write_pixels = vnc_write_pixels_copy;
 
     vnc_write(vs, pad, 3);           /* padding */