From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7A1737F8BC for ; Sun, 26 Jul 2026 09:32:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785058342; cv=none; b=F2testoQF0tIX1BiV1HKSC15TGy4cxexseyGOxSWqnWCvPKudfgzfQ/6b41//8Q1qb2PWAWd6hX2i8/cVvYgaKpN2d8xpilb2WhKA/7WMslqdKLZu/ybkJLgTXAOnqEiUxHQ7PACHjH2c66ZqB7ymM69L07MExbEFSnbOjkkhz8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785058342; c=relaxed/simple; bh=LUrxNRKSHtQWhflLuNK0zNgmVt6PH8l82UeFkiACQIo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cdGaLesLemfeEobZuC7LXcp+qVPjzZlbdim3La34QQ8RjDWG3gCPnbuM/We9eTDgyqxj2crQz/1zhNS0TUH+HkJh7prIqPBXwTxUU1zmi8DIPPGAuLWqwQLX84pZ0DSfxgLDEW6ynEhSkxzyU6zLtjmzJGlmJdMQvgz12rEC9HA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Yxaf6Vkb; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Yxaf6Vkb" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-84e682b30ecso267905b3a.1 for ; Sun, 26 Jul 2026 02:32:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785058340; x=1785663140; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=WVZjXnnk2jihD1ItfNbHIR/890XeYrWeJjusBszoF44=; b=Yxaf6Vkbzuy8DAu+5Yz3kC1GgxU41CEqAF1+CY7qcalBavg3Gu59Z6KBF0mLYh/bya qHNjK/BjPMRCN/H4lFeDtGquj9DXT6PewP7YaopgNecGwNLbM2MJ9y53+WXT5ZMkcCt3 xEoFuN3UzSCw1JIzMMkdgENfn8Ss/tiXXhVpwSoCE0D7sEUq8rrHVF0vNqlx8O2lziMf 26v5qB7+TOFZuHQhDzaNniQiE8HdooUrbJ/H6neRMDkA96JhOvDxyusLkEx5djgmVbbF zNzOIbREfR6zUKg3Vs0NPKInx9kgBkzw8CvFBeoAzTMlLWOZa28vpTqjnivjaJuifzZl e8NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785058340; x=1785663140; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=WVZjXnnk2jihD1ItfNbHIR/890XeYrWeJjusBszoF44=; b=Di9K9JH+g1kgWHn4I1464ltA1j/9XfZuHFE8j11XsT1+4EvfK5m7YdJA74ky8Buyd1 j+HKt+mfgrXl2M5ZxPK+FyAct0CysWsyuPUolwu8ox0C23BJgAjjsWkajfxfGGHJGw1T ugBbuSa70k2ezWJflBk35y4jXsy22KLMTiZk9XAKdGMLMksAsz7N1sep1iXaO5vgvetT ioGrOB1CPE04jwT60jdtoWq3uxHlK25KkjqE21yuC1oquJZzjJ2lGvsau7jvflE8pbqJ eVBvhPXsZE28F0SFmP97M4UT1CkGsF7L4sAyrBt/kg7UF2GrG+YzA8xMUBDPkGWbuj9t +oZQ== X-Forwarded-Encrypted: i=1; AHgh+RpvVcnxmXf6LrT6oD5ay05NJ6nSGF1O+3Ad+Evxc3TzosPA4CMjnaz01YGNd/DjNkWTKyayBBvnIodKjAQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yxrtbicuogo9su460jRuyiFLDskRFj941d4NhuZrmVsMjWho5Rb xo4pfvpVtoxQOEvHjpiIU6eJajqt9wHoELkHR3X7QOieIXjmHW7RvXU01ki58TzFczU= X-Gm-Gg: AR+sD10MmLk369igHYmkVkZFAOY42lnCKOwzmRx7M8Cqli5V89btxTEUQ8r/GJ1GGeL UphBEU1+UzJtZP22KI2ZoPocTFzklwkh0+UWIUJg99vU6p8VcaVQ7Zzaz/41sFnu87aYKwlurHD RnuM5vi1PvPEhUEuUy6JoPBvnjTl7rAG8hhNamQdAVc9g78VVPXiy/kN4RV523XAnOOMip3X7J7 mtLVdMJ1ZBixJX9T8ba7Qs12K0zgAtmR+gTq8QelA2UNk8SLGWETYk/Jjv0DHfO8HxH6wiA8J5Q zKd9YRj85lVC9c0DycKOYQ+G+ickRloqmQHXOrnQa1j7GpbTZOG2azK/gYAm1rpxwWh0QipHo4j LJKehtGLY2YwzGw+6xTkLzrhfbe7+o3VF6zJ5ul/US67EoTt0vIcjx/CyN2eQQCg9KbvT+NI/I4 llSA== X-Received: by 2002:a05:6a00:bb05:b0:84b:e69f:1b3f with SMTP id d2e1a72fcca58-84e59411a41mr3345821b3a.8.1785058340278; Sun, 26 Jul 2026 02:32:20 -0700 (PDT) Received: from ubuntu.. ([2001:2d8:72ac:5ae4:b4c0:11d6:e62a:f791]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84e533d1448sm1731781b3a.30.2026.07.26.02.32.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jul 2026 02:32:19 -0700 (PDT) From: Rihyeon Kim To: bhelgaas@google.com Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org, tarunsahu@google.com, djeffery@redhat.com, =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= Subject: [PATCH v2 2/2] PCI: Free the device name on the pci_setup_device() error path Date: Sun, 26 Jul 2026 18:32:00 +0900 Message-ID: <20260726093200.146111-3-rihyeon8648@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260726093200.146111-1-rihyeon8648@gmail.com> References: <20260726093200.146111-1-rihyeon8648@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit pci_setup_device() sets the device name with dev_set_name(), which allocates it. When the header type turns out to be unknown the function returns -EIO, and pci_scan_device() then releases the device with kfree() rather than put_device(), because the device has not been initialized with device_initialize() yet. The name is never freed, so it is leaked. Free it there and clear the pointer, so the freed name is not left behind in the kobject. Yang Yingliang reported the same leak in 2022. Fixes: 1fa5ae857bb1 ("driver core: get rid of struct device's bus_id string array") Suggested-by: Yang Yingliang Link: https://lore.kernel.org/linux-pci/20220817084444.2876059-1-yangyingliang@huawei.com/ Assisted-by: Claude:claude-opus-5 sparse Signed-off-by: Rihyeon Kim --- v2: new patch, picked up from Yang Yingliang's 2022 posting as suggested in review, with the NULL assignment added. drivers/pci/probe.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 3e6f0eb7d456..74d84093943b 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -2192,6 +2192,8 @@ int pci_setup_device(struct pci_dev *dev) default: /* unknown header */ pci_err(dev, "unknown header type %02x, ignoring device\n", dev->hdr_type); + kfree_const(dev->dev.kobj.name); + dev->dev.kobj.name = NULL; pci_release_of_node(dev); return -EIO; -- 2.43.0