summaryrefslogtreecommitdiffstats
path: root/qemu-char.c
diff options
context:
space:
mode:
authorStefan Weil2012-04-19 22:27:14 +0200
committerAnthony Liguori2012-04-24 16:50:31 +0200
commitac3107340fbb9422ea63ee5d6729775965e121fd (patch)
tree7892379e64c660b15cb20e0557bfe21cb578ddb6 /qemu-char.c
parentconfigure: add --with-confsuffix option (diff)
downloadqemu-ac3107340fbb9422ea63ee5d6729775965e121fd.tar.gz
qemu-ac3107340fbb9422ea63ee5d6729775965e121fd.tar.xz
qemu-ac3107340fbb9422ea63ee5d6729775965e121fd.zip
qemu-char: Fix crash when switching consoles
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>
Diffstat (limited to 'qemu-char.c')
-rw-r--r--qemu-char.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/qemu-char.c b/qemu-char.c
index 74c60e11a0..a9fc50481a 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -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)