From patchwork Fri Nov 18 13:35:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Zawadzki X-Patchwork-Id: 119970 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4E379A0544; Fri, 18 Nov 2022 14:35:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EF6454021F; Fri, 18 Nov 2022 14:35:53 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id E5DC34003F for ; Fri, 18 Nov 2022 14:35:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668778553; x=1700314553; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=7onoy5YwhuDoD+68gcXcPA2cspHuNfpl2gOAB3l9pLU=; b=OlWEeHDygIhX3+9VmfblVEKpF5w505DYYyK8O6vSutZPsD2WbjrCeI0p hwIVs2+qmifDM1VYbKwdXgHQEEKpkUlRUoNgyQlyoghCJDKbj8qTEkomt yNP1jeZFBKXbQpzZwYAnqEltITWw6kgJATuRjAme/XDG+uBh5Kp7PETNz f1MQ9SXqPgswbhpF4P5RZGUA3WEf6Qmn7UkZ1xJm5zBUO/uz/erZQyYR2 LemgFy4GLn5xl3rriuxbHR8usIDYmUcN2Gfdo3D3Qz0If0nnFhopEEQiG kgu/xN5I4FMbEcTTYf6XKSFRb9gxfSobK2AHG5XQjJJ/TgXZNZLxsE5hT g==; X-IronPort-AV: E=McAfee;i="6500,9779,10534"; a="314953181" X-IronPort-AV: E=Sophos;i="5.96,174,1665471600"; d="scan'208";a="314953181" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Nov 2022 05:35:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10534"; a="729232718" X-IronPort-AV: E=Sophos;i="5.96,174,1665471600"; d="scan'208";a="729232718" Received: from wisla.igk.intel.com ([10.211.11.141]) by FMSMGA003.fm.intel.com with ESMTP; 18 Nov 2022 05:35:50 -0800 From: Tomasz Zawadzki To: Bruce Richardson , David Marchand Cc: dev@dpdk.org, Tomasz Zawadzki Subject: [PATCH] bus/pci: fix bus info memleak during PCI scan Date: Fri, 18 Nov 2022 14:35:47 +0100 Message-Id: <20221118133547.1203417-1-tomasz.zawadzki@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 --- 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;