OSDN Git Service

qemu-char: Fix crash when switching consoles
authorStefan Weil <sw@weilnetz.de>
Thu, 19 Apr 2012 20:27:14 +0000 (22:27 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Tue, 24 Apr 2012 14:50:31 +0000 (09:50 -0500)
qemu-system-arm (and other system emulations) crashes with SDL when
the user switches consoles (Alt-Ctrl-F4).

We already check for NULL pointers in qemu_chr_fe_ioctl,
qemu_chr_be_can_write and other functions, so do this also
for s->chr_read in qemu_chr_be_write. This fixes the crash.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qemu-char.c

index 74c60e1..a9fc504 100644 (file)
@@ -160,7 +160,9 @@ int qemu_chr_be_can_write(CharDriverState *s)
 
 void qemu_chr_be_write(CharDriverState *s, uint8_t *buf, int len)
 {
-    s->chr_read(s->handler_opaque, buf, len);
+    if (s->chr_read) {
+        s->chr_read(s->handler_opaque, buf, len);
+    }
 }
 
 int qemu_chr_fe_get_msgfd(CharDriverState *s)