Marc-André Lureau <[email protected]> writes:
> Spotted by ASAN.
>
> Signed-off-by: Marc-André Lureau <[email protected]>
> ---
> tests/e1000e-test.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/tests/e1000e-test.c b/tests/e1000e-test.c
> index 8c42ca919f..c612dc64ec 100644
> --- a/tests/e1000e-test.c
> +++ b/tests/e1000e-test.c
> @@ -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)
{
static const int e1000e_vendor_id = 0x8086;
static const int e1000e_dev_id = 0x10D3;
QPCIDevice *e1000e_dev = NULL;
qpci_device_foreach(bus, e1000e_vendor_id, e1000e_dev_id,
e1000e_pci_foreach_callback, &e1000e_dev);
This hunk adds an assertion. I guess it checks that we're finding no
more than one e1000e device. The connection to the stated purpose of
this patch isn't obvious, but I think I got it: each hit allocates, but
you have only one g_free(), below. Okay, but explaining this briefly
the commit message wouldn't hurt.
> @@ -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();
> }
Reviewed-by: Markus Armbruster <[email protected]>