OSDN Git Service

tests: fix e1000e leaks
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Mon, 6 Feb 2017 08:56:15 +0000 (08:56 +0000)
committerMarc-André Lureau <marcandre.lureau@redhat.com>
Wed, 1 Mar 2017 07:51:28 +0000 (11:51 +0400)
Spotted by ASAN.

This hunk adds an assertion. It checks that we're finding no more than
one e1000e device: each hit allocates, but there is only one g_free().

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
tests/e1000e-test.c

index 8c42ca9..c612dc6 100644 (file)
@@ -99,7 +99,10 @@ static QPCIBus *test_bus;
 
 static void e1000e_pci_foreach_callback(QPCIDevice *dev, int devfn, void *data)
 {
-    *(QPCIDevice **) data = dev;
+    QPCIDevice **res = data;
+
+    g_assert_null(*res);
+    *res = dev;
 }
 
 static QPCIDevice *e1000e_device_find(QPCIBus *bus)
@@ -403,6 +406,7 @@ static void data_test_clear(e1000e_device *d)
     e1000e_device_clear(test_bus, d);
     close(test_sockets[0]);
     pc_alloc_uninit(test_alloc);
+    g_free(d->pci_dev);
     qpci_free_pc(test_bus);
     qtest_end();
 }