aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Wang <jasowang@redhat.com>2013-11-06 16:58:08 +0800
committerMichael S. Tsirkin <mst@redhat.com>2013-11-10 12:08:38 +0200
commit6b9b8758c15f3bc2875dbd6e2d03c5362b8d6902 (patch)
tree41a42ff79dbb27aed1d5b91a9e6be3a6ecae5081
parent04c7d8b8dea724f1007f0f6e76047ff03b4cb24f (diff)
downloadqemu-6b9b8758c15f3bc2875dbd6e2d03c5362b8d6902.tar.gz
virtio-net: only delete bh that existed
We delete without check whether it existed during exit. This will lead NULL pointer deference since it was created conditionally depends on guest driver status and features. So add a check of existence before trying to delete it. Cc: qemu-stable@nongnu.org Signed-off-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--hw/net/virtio-net.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 22dbd053d49..ae51d96a7aa 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -1601,7 +1601,7 @@ static int virtio_net_device_exit(DeviceState *qdev)
if (q->tx_timer) {
timer_del(q->tx_timer);
timer_free(q->tx_timer);
- } else {
+ } else if (q->tx_bh) {
qemu_bh_delete(q->tx_bh);
}
}