]> git.proxmox.com Git - qemu.git/commitdiff
pseries: Check we have a chardev in spapr_vty_init()
authorMichael Ellerman <michael@ellerman.id.au>
Sun, 13 Nov 2011 17:18:59 +0000 (17:18 +0000)
committerAlexander Graf <agraf@suse.de>
Fri, 18 Nov 2011 13:22:46 +0000 (14:22 +0100)
If qemu is run like:

 qemu-system-ppc64 -nodefaults -device spapr-vty

We end up in spapr_vty_init() with dev->chardev == NULL. Currently
that leads to a segfault because we unconditionally call
qemu_chr_add_handlers().

Although we could make that call conditional, I think a spapr-vty
without a chardev is basically useless so fail the init. This is
similar to what the serial code does for example.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/spapr_vty.c

index a9d4b035e28015a355ed70dc1e4ebd3a31dd5214..f4f3ee32ae9d18e4734259d0eb742fd93bb55ea8 100644 (file)
@@ -58,6 +58,11 @@ static int spapr_vty_init(VIOsPAPRDevice *sdev)
 {
     VIOsPAPRVTYDevice *dev = (VIOsPAPRVTYDevice *)sdev;
 
+    if (!dev->chardev) {
+        fprintf(stderr, "spapr-vty: Can't create vty without a chardev!\n");
+        exit(1);
+    }
+
     qemu_chr_add_handlers(dev->chardev, vty_can_receive,
                           vty_receive, NULL, dev);