diff options
author | Amit Shah <amit.shah@redhat.com> | 2012-12-18 13:08:33 +0530 |
---|---|---|
committer | Amit Shah <amit.shah@redhat.com> | 2012-12-18 14:28:50 +0530 |
commit | 91bdd1cf08f65b7a127c22d4d65ff9d16dcac870 (patch) | |
tree | 632c89c679ffebd0d13cad041bc59ab7610d7699 /hw/virtio-serial-bus.c | |
parent | 4e28976e563ad54f6adc5ae00b1fb8224f1a82ca (diff) | |
download | hqemu-91bdd1cf08f65b7a127c22d4d65ff9d16dcac870.zip hqemu-91bdd1cf08f65b7a127c22d4d65ff9d16dcac870.tar.gz |
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>
Diffstat (limited to 'hw/virtio-serial-bus.c')
-rw-r--r-- | hw/virtio-serial-bus.c | 6 |
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); |