summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Wang <jasowang@redhat.com>2013-11-06 16:58:08 +0800
committerMichael Roth <mdroth@linux.vnet.ibm.com>2013-12-03 19:56:56 -0600
commit5326636ff2390bb260b3d8d14899b04db205992d (patch)
tree008747042bbee004e770c38d03fd0bc2d9952ed4
parent3bd74d1712c33a746b1aee45b809647f9353238c (diff)
downloadqemu-5326636ff2390bb260b3d8d14899b04db205992d.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> Message-id: 1383728288-28469-1-git-send-email-jasowang@redhat.com Signed-off-by: Anthony Liguori <aliguori@amazon.com> (cherry picked from commit fe2dafa02de4f80ab36f6e0f4ddfcd6418c03c49) Conflicts: hw/net/virtio-net.c *modified to reflect timer function names for 1.6 Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.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 aa1880cb87..bb757b3e67 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -1600,7 +1600,7 @@ static int virtio_net_device_exit(DeviceState *qdev)
if (q->tx_timer) {
qemu_del_timer(q->tx_timer);
qemu_free_timer(q->tx_timer);
- } else {
+ } else if (q->tx_bh) {
qemu_bh_delete(q->tx_bh);
}
}