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 |