The current intptr_t casts are a problem when the address's highest
bit is 1, and it is cast to a intptr_t and then to uint64_t, such
as at:
surface.mem = (intptr_t)ssd->buf;
This causes the sign bit to be extended which causes a wrong address to
be passed on to spice, which then complains when it gets the wrong
slot_id number, since the slot_id is taken from the higher bits.
The assertion happens early - during the first primary surface creation.
This fixes running "-vga qxl -spice" with 32 bit compiled
qemu-system-i386.
Signed-off-by: Alon Levy <alevy@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||
|---|---|---|
| .. | ||
| cocoa.m | ||
| curses.c | ||
| curses_keys.h | ||
| d3des.c | ||
| d3des.h | ||
| keymaps.c | ||
| keymaps.h | ||
| qemu-spice.h | ||
| sdl.c | ||
| sdl_keysym.h | ||
| sdl_zoom.c | ||
| sdl_zoom.h | ||
| sdl_zoom_template.h | ||
| spice-core.c | ||
| spice-display.c | ||
| spice-display.h | ||
| spice-input.c | ||
| vnc-auth-sasl.c | ||
| vnc-auth-sasl.h | ||
| vnc-auth-vencrypt.c | ||
| vnc-auth-vencrypt.h | ||
| vnc-enc-hextile-template.h | ||
| vnc-enc-hextile.c | ||
| vnc-enc-tight.c | ||
| vnc-enc-tight.h | ||
| vnc-enc-zlib.c | ||
| vnc-enc-zrle-template.c | ||
| vnc-enc-zrle.c | ||
| vnc-enc-zrle.h | ||
| vnc-enc-zywrle-template.c | ||
| vnc-enc-zywrle.h | ||
| vnc-jobs-async.c | ||
| vnc-jobs-sync.c | ||
| vnc-jobs.h | ||
| vnc-palette.c | ||
| vnc-palette.h | ||
| vnc-tls.c | ||
| vnc-tls.h | ||
| vnc.c | ||
| vnc.h | ||
| vnc_keysym.h | ||
| x_keymap.c | ||
| x_keymap.h | ||