aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2012-12-18 13:08:33 +0530
committerAmit Shah <amit.shah@redhat.com>2012-12-18 14:28:50 +0530
commit91bdd1cf08f65b7a127c22d4d65ff9d16dcac870 (patch)
tree632c89c679ffebd0d13cad041bc59ab7610d7699
parent4e28976e563ad54f6adc5ae00b1fb8224f1a82ca (diff)
downloadqemu-91bdd1cf08f65b7a127c22d4d65ff9d16dcac870.zip
qemu-91bdd1cf08f65b7a127c22d4d65ff9d16dcac870.tar.gz
qemu-91bdd1cf08f65b7a127c22d4d65ff9d16dcac870.tar.bz2
virtio-serial-bus: assert port is non-null in remove_port()
remove_port() is called from qdev's unplug callback, and we're certain the port will be found in our list of ports. Adding an assert() documents this. This was flagged by Coverity, fix suggested by Markus. CC: Markus Armbruster <armbru@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
-rw-r--r--hw/virtio-serial-bus.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
index 3ea95b8..ce4556f 100644
--- a/hw/virtio-serial-bus.c
+++ b/hw/virtio-serial-bus.c
@@ -852,6 +852,12 @@ static void remove_port(VirtIOSerial *vser, uint32_t port_id)
vser->ports_map[i] &= ~(1U << (port_id % 32));
port = find_port_by_id(vser, port_id);
+ /*
+ * This function is only called from qdev's unplug callback; if we
+ * get a NULL port here, we're in trouble.
+ */
+ assert(port);
+
/* Flush out any unconsumed buffers first */
discard_vq_data(port->ovq, &port->vser->vdev);