qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Marc-André Lureau" <marcandre.lureau@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [Qemu-devel] [PATCH v2 29/30] tests: fix virtio-blk-test leaks
Date: Tue, 21 Feb 2017 18:14:50 +0400	[thread overview]
Message-ID: <20170221141451.28305-30-marcandre.lureau@redhat.com> (raw)
In-Reply-To: <20170221141451.28305-1-marcandre.lureau@redhat.com>

Use qvirtio_pci_device_find_slot() to avoid leaking the non-hp
device. Add assert() to avoid further leaks in the future.

Use qvirtio_pci_device_free() to correctly free QVirtioPCIDevice.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 tests/libqos/virtio-pci.c |  1 +
 tests/virtio-blk-test.c   | 14 +++++++-------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/tests/libqos/virtio-pci.c b/tests/libqos/virtio-pci.c
index 8a0904bbf0..7ac15c04e1 100644
--- a/tests/libqos/virtio-pci.c
+++ b/tests/libqos/virtio-pci.c
@@ -68,6 +68,7 @@ static void qvirtio_pci_foreach_callback(
 static void qvirtio_pci_assign_device(QVirtioDevice *d, void *data)
 {
     QVirtioPCIDevice **vpcidev = data;
+    assert(!*vpcidev);
     *vpcidev = (QVirtioPCIDevice *)d;
 }
 
diff --git a/tests/virtio-blk-test.c b/tests/virtio-blk-test.c
index 10a92b410a..1eee95df49 100644
--- a/tests/virtio-blk-test.c
+++ b/tests/virtio-blk-test.c
@@ -108,7 +108,7 @@ static QVirtioPCIDevice *virtio_blk_pci_init(QPCIBus *bus, int slot)
 {
     QVirtioPCIDevice *dev;
 
-    dev = qvirtio_pci_device_find(bus, VIRTIO_ID_BLOCK);
+    dev = qvirtio_pci_device_find_slot(bus, VIRTIO_ID_BLOCK, slot);
     g_assert(dev != NULL);
     g_assert_cmphex(dev->vdev.device_type, ==, VIRTIO_ID_BLOCK);
     g_assert_cmphex(dev->pdev->devfn, ==, ((slot << 3) | PCI_FN));
@@ -296,7 +296,7 @@ static void pci_basic(void)
     /* End test */
     qvirtqueue_cleanup(dev->vdev.bus, &vqpci->vq, qs->alloc);
     qvirtio_pci_device_disable(dev);
-    g_free(dev);
+    qvirtio_pci_device_free(dev);
     qtest_shutdown(qs);
 }
 
@@ -389,7 +389,7 @@ static void pci_indirect(void)
     /* End test */
     qvirtqueue_cleanup(dev->vdev.bus, &vqpci->vq, qs->alloc);
     qvirtio_pci_device_disable(dev);
-    g_free(dev);
+    qvirtio_pci_device_free(dev);
     qtest_shutdown(qs);
 }
 
@@ -418,7 +418,7 @@ static void pci_config(void)
     g_assert_cmpint(capacity, ==, n_size / 512);
 
     qvirtio_pci_device_disable(dev);
-    g_free(dev);
+    qvirtio_pci_device_free(dev);
 
     qtest_shutdown(qs);
 }
@@ -526,7 +526,7 @@ static void pci_msix(void)
     qvirtqueue_cleanup(dev->vdev.bus, &vqpci->vq, qs->alloc);
     qpci_msix_disable(dev->pdev);
     qvirtio_pci_device_disable(dev);
-    g_free(dev);
+    qvirtio_pci_device_free(dev);
     qtest_shutdown(qs);
 }
 
@@ -642,7 +642,7 @@ static void pci_idx(void)
     qvirtqueue_cleanup(dev->vdev.bus, &vqpci->vq, qs->alloc);
     qpci_msix_disable(dev->pdev);
     qvirtio_pci_device_disable(dev);
-    g_free(dev);
+    qvirtio_pci_device_free(dev);
     qtest_shutdown(qs);
 }
 
@@ -661,7 +661,7 @@ static void pci_hotplug(void)
     dev = virtio_blk_pci_init(qs->pcibus, PCI_SLOT_HP);
     g_assert(dev);
     qvirtio_pci_device_disable(dev);
-    g_free(dev);
+    qvirtio_pci_device_free(dev);
 
     /* unplug secondary disk */
     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
-- 
2.11.0.295.gd7dffce1c.dirty

  parent reply	other threads:[~2017-02-21 14:17 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-21 14:14 [Qemu-devel] [PATCH v2 00/30] Various memory leak fixes Marc-André Lureau
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 01/30] qtest: fix a memory leak Marc-André Lureau
2017-02-21 16:40   ` Philippe Mathieu-Daudé
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 02/30] tests: fix qmp response leak Marc-André Lureau
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 03/30] tests: fix leaks in test-io-channel-command Marc-André Lureau
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 04/30] timer: use an inline function for free Marc-André Lureau
2017-02-22 11:33   ` Paolo Bonzini
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 05/30] glib-compat: add g_test_add_data_func_full fallback Marc-André Lureau
2017-02-21 19:15   ` Eric Blake
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 06/30] tests: fix ptimer leaks Marc-André Lureau
2017-02-22 11:33   ` Paolo Bonzini
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 07/30] tests: fix endianness-test leaks Marc-André Lureau
2017-02-21 16:40   ` Philippe Mathieu-Daudé
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 08/30] tests: fix q35-test leaks Marc-André Lureau
2017-02-28 23:05   ` Eric Blake
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 09/30] tests: fix vhost-user-test leaks Marc-André Lureau
2017-02-28 23:09   ` Eric Blake
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 10/30] tests: fix ide-test leaks Marc-André Lureau
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 11/30] tests: fix hd-geo-test leaks Marc-André Lureau
2017-02-27 13:59   ` Markus Armbruster
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 12/30] tests: fix bios-tables-test leak Marc-André Lureau
2017-02-27 14:03   ` Markus Armbruster
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 13/30] tests: fix ipmi-kcs-test leak Marc-André Lureau
2017-02-21 16:41   ` Philippe Mathieu-Daudé
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 14/30] tests: fix ipmi-bt-test leak Marc-André Lureau
2017-02-21 16:42   ` Philippe Mathieu-Daudé
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 15/30] pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice Marc-André Lureau
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 16/30] tests: fix eepro100-test leak Marc-André Lureau
2017-02-21 14:42   ` Stefan Weil
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 17/30] tests: fix tco-test leaks Marc-André Lureau
2017-02-28 23:10   ` Eric Blake
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 18/30] tests: fix e1000-test leak Marc-André Lureau
2017-02-21 16:42   ` Philippe Mathieu-Daudé
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 19/30] tests: fix i440fx-test leaks Marc-André Lureau
2017-02-27 14:05   ` Markus Armbruster
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 20/30] tests: fix e1000e leaks Marc-André Lureau
2017-02-27 14:12   ` Markus Armbruster
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 21/30] tests: fix virtio-scsi-test leak Marc-André Lureau
2017-02-22 11:33   ` Paolo Bonzini
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 22/30] tests: fix virtio-9p-test leaks Marc-André Lureau
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 23/30] bus: do not unref hotplug handler Marc-André Lureau
2017-02-22 11:33   ` Paolo Bonzini
2017-02-22 13:03     ` Marc-André Lureau
2017-02-22 13:04       ` Paolo Bonzini
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 24/30] usb: replace handle_destroy with unrealize Marc-André Lureau
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 25/30] usb: release the created buses Marc-André Lureau
2017-02-21 22:59   ` Gerd Hoffmann
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 26/30] tests: allows to run single test in usb-hcd-ehci-test Marc-André Lureau
2017-02-21 16:45   ` Philippe Mathieu-Daudé
2017-02-21 23:01   ` Gerd Hoffmann
2017-02-22  8:36     ` Marc-André Lureau
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 27/30] tests: fix usb-test leaks Marc-André Lureau
2017-02-21 22:59   ` Gerd Hoffmann
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 28/30] tests: add specialized device_find function Marc-André Lureau
2017-02-28 23:21   ` Eric Blake
2017-03-01  7:59     ` Marc-André Lureau
2017-02-21 14:14 ` Marc-André Lureau [this message]
2017-02-28 23:22   ` [Qemu-devel] [PATCH v2 29/30] tests: fix virtio-blk-test leaks Eric Blake
2017-02-21 14:14 ` [Qemu-devel] [PATCH v2 30/30] migration: fix id leak regression Marc-André Lureau
2017-02-21 14:19   ` Dr. David Alan Gilbert
2017-02-21 17:04     ` Philippe Mathieu-Daudé
2017-02-22  8:41       ` Marc-André Lureau
2017-02-28  9:50   ` Dr. David Alan Gilbert
2017-02-27 11:04 ` [Qemu-devel] [PATCH v2 00/30] Various memory leak fixes Marc-André Lureau
2017-02-28 23:23   ` Eric Blake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170221141451.28305-30-marcandre.lureau@redhat.com \
    --to=marcandre.lureau@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).