vnc: Fix incorrect attempt to clear a flag

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
This commit is contained in:
aurel32 2009-04-07 19:57:09 +00:00
parent ceb42de899
commit 3cded54009

2
vnc.c
View File

@ -1598,7 +1598,7 @@ static void pixel_format_message (VncState *vs) {
else if (vs->ds->surface->pf.bits_per_pixel == 8) else if (vs->ds->surface->pf.bits_per_pixel == 8)
vs->send_hextile_tile = send_hextile_tile_8; vs->send_hextile_tile = send_hextile_tile_8;
vs->clientds = *(vs->ds->surface); vs->clientds = *(vs->ds->surface);
vs->clientds.flags |= ~QEMU_ALLOCATED_FLAG; vs->clientds.flags &= ~QEMU_ALLOCATED_FLAG;
vs->write_pixels = vnc_write_pixels_copy; vs->write_pixels = vnc_write_pixels_copy;
vnc_write(vs, pad, 3); /* padding */ vnc_write(vs, pad, 3); /* padding */