Skip to content

Commit 7f7ac21

Browse files
morecachemdroth
authored andcommitted
msmouse: Fix segfault caused by free the chr before chardev cleanup.
Segfault happens when leaving qemu with msmouse backend: #0 0x00007fa8526ac975 in raise () at /lib64/libc.so.6 #1 0x00007fa8526add8a in abort () at /lib64/libc.so.6 #2 0x0000558be78846ab in error_exit (err=16, msg=0x558be799da10 ... #3 0x0000558be7884717 in qemu_mutex_destroy (mutex=0x558be93be750) at ... #4 0x0000558be7549951 in qemu_chr_free_common (chr=0x558be93be750) at ... #5 0x0000558be754999c in qemu_chr_free (chr=0x558be93be750) at ... #6 0x0000558be7549a20 in qemu_chr_delete (chr=0x558be93be750) at ... #7 0x0000558be754a8ef in qemu_chr_cleanup () at qemu-char.c:4643 #8 0x0000558be755843e in main (argc=5, argv=0x7ffe925d7118, ... The chr was freed by msmouse close callback before chardev cleanup, Then qemu_mutex_destroy triggered raise(). Because freeing chr is handled by qemu_chr_free_common, Remove the free from msmouse_chr_close to avoid double free. Fixes: c1111a2 Cc: [email protected] Signed-off-by: Lin Ma <[email protected]> Message-Id: <[email protected]> Signed-off-by: Paolo Bonzini <[email protected]> (cherry picked from commit 9e14037) Signed-off-by: Michael Roth <[email protected]>
1 parent db1604c commit 7f7ac21

File tree

1 file changed

+0
-1
lines changed

1 file changed

+0
-1
lines changed

backends/msmouse.c

-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ static void msmouse_chr_close (struct CharDriverState *chr)
139139

140140
qemu_input_handler_unregister(mouse->hs);
141141
g_free(mouse);
142-
g_free(chr);
143142
}
144143

145144
static QemuInputHandler msmouse_handler = {

0 commit comments

Comments
 (0)