[PATCH] bus/pci: fix bus info memleak during PCI scan

Tomasz Zawadzki tomasz.zawadzki at intel.com
Fri Nov 18 14:35:47 CET 2022


During pci_scan_one() for devices that were already registered
the pci_common_set() is called to set some of the fields again.

This resulted in bus_info allocation leaking, so this patch
ensures they are always freed beforehand.

Fixes: 8f4de2dba9b9 ("bus/pci: fill bus specific information")

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki at intel.com>
---
 drivers/bus/pci/pci_common.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index 9901c34f4e..9a866055e8 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -114,6 +114,7 @@ pci_common_set(struct rte_pci_device *dev)
 		/* Otherwise, it uses the internal, canonical form. */
 		dev->device.name = dev->name;
 
+	free(dev->bus_info);
 	if (asprintf(&dev->bus_info, "vendor_id=%"PRIx16", device_id=%"PRIx16,
 			dev->id.vendor_id, dev->id.device_id) != -1)
 		dev->device.bus_info = dev->bus_info;
-- 
2.38.1



More information about the dev mailing list