summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.12.4/cursor-shadow-fix.patch35
-rw-r--r--meta/recipes-devtools/qemu/qemu_0.12.4.bb3
2 files changed, 37 insertions, 1 deletions
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/cursor-shadow-fix.patch b/meta/recipes-devtools/qemu/qemu-0.12.4/cursor-shadow-fix.patch
new file mode 100644
index 0000000000..6600c4303f
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu-0.12.4/cursor-shadow-fix.patch
@@ -0,0 +1,35 @@
1Fix the mouse shadow in qemu
2
3the root cause is that the qemu cursor array is hardcoded to 256 bytes, while the sato use cursor of the size 64*64=4096, thus lead buffer overflow and abnormal mouse.
4
5This issue has been fixed in upstream starting from v0.13.0-rc0. v0.12.5 still has this issue. So when qemu is upgraded to 0.13.0 or above, this patch can be safely removed.
6
7Signed-off-by: Yu Ke <ke.yu@intel.com>
8
9diff --git a/sdl.c b/sdl.c
10index 7912c91..2f33cd2 100644
11--- a/sdl.c
12+++ b/sdl.c
13@@ -775,12 +775,12 @@ static void sdl_mouse_define(int width, int height, int bpp,
14 int hot_x, int hot_y,
15 uint8_t *image, uint8_t *mask)
16 {
17- uint8_t sprite[256], *line;
18+ uint8_t *sprite, *line;
19 int x, y, dst, bypl, src = 0;
20 if (guest_sprite)
21 SDL_FreeCursor(guest_sprite);
22
23- memset(sprite, 0, 256);
24+ sprite = (uint8_t*)qemu_mallocz(width * height);
25 bypl = ((width * bpp + 31) >> 5) << 2;
26 for (y = 0, dst = 0; y < height; y ++, image += bypl) {
27 line = image;
28@@ -818,6 +818,7 @@ static void sdl_mouse_define(int width, int height, int bpp,
29 if (guest_cursor &&
30 (gui_grab || kbd_mouse_is_absolute() || absolute_enabled))
31 SDL_SetCursor(guest_sprite);
32+ qemu_free(sprite);
33 }
34
35 static void sdl_cleanup(void)
diff --git a/meta/recipes-devtools/qemu/qemu_0.12.4.bb b/meta/recipes-devtools/qemu/qemu_0.12.4.bb
index e448eb9b17..86e6561e11 100644
--- a/meta/recipes-devtools/qemu/qemu_0.12.4.bb
+++ b/meta/recipes-devtools/qemu/qemu_0.12.4.bb
@@ -1,6 +1,6 @@
1require qemu.inc 1require qemu.inc
2 2
3PR = "r20" 3PR = "r21"
4 4
5FILESPATH = "${FILE_DIRNAME}/qemu-${PV}" 5FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
6FILESDIR = "${WORKDIR}" 6FILESDIR = "${WORKDIR}"
@@ -19,6 +19,7 @@ SRC_URI = "\
19 file://qemu-ppc-hack.patch \ 19 file://qemu-ppc-hack.patch \
20 file://enable-i386-linux-user.patch \ 20 file://enable-i386-linux-user.patch \
21 file://arm-cp15-fix.patch \ 21 file://arm-cp15-fix.patch \
22 file://cursor-shadow-fix.patch \
22 file://powerpc_rom.bin" 23 file://powerpc_rom.bin"
23 24
24do_install_append () { 25do_install_append () {