Message ID | 20200902131152.1219-2-eric.auger@redhat.com |
---|---|
State | New |
Headers | show |
Series | virtio-iommu-pci: Advertise the device as modern-only | expand |
On Wed, 2 Sep 2020 15:11:51 +0200 Eric Auger <eric.auger@redhat.com> wrote: > If realize fails, domains and endpoints trees may be NULL. On > unrealize(), this produces asseryions: s/asseryions/assertions/ > "GLib: g_tree_destroy: assertion 'tree != NULL' failed" > > Check the tree are non NULL before destroying them. s/the tree/that the trees/ > > Cc: qemu-stable@nongnu.org > Signed-off-by: Eric Auger <eric.auger@redhat.com> > --- > hw/virtio/virtio-iommu.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) Good to see that the version checking has flushed out a bug :) Reviewed-by: Cornelia Huck <cohuck@redhat.com>
diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 5d56865e56..21ec63b108 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -801,8 +801,12 @@ static void virtio_iommu_device_unrealize(DeviceState *dev) VirtIOIOMMU *s = VIRTIO_IOMMU(dev); g_hash_table_destroy(s->as_by_busptr); - g_tree_destroy(s->domains); - g_tree_destroy(s->endpoints); + if (s->domains) { + g_tree_destroy(s->domains); + } + if (s->endpoints) { + g_tree_destroy(s->endpoints); + } virtio_delete_queue(s->req_vq); virtio_delete_queue(s->event_vq);
If realize fails, domains and endpoints trees may be NULL. On unrealize(), this produces asseryions: "GLib: g_tree_destroy: assertion 'tree != NULL' failed" Check the tree are non NULL before destroying them. Cc: qemu-stable@nongnu.org Signed-off-by: Eric Auger <eric.auger@redhat.com> --- hw/virtio/virtio-iommu.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)