From nobody Tue Jun 16 02:36:09 2026 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (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 AECF431326B for ; Wed, 15 Apr 2026 14:05:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776261944; cv=none; b=YBiDADJgaJ8ttPLxuBC+L8dH17eNYOVfJwpG288fHQkSPHmKBubpmB9bU1YkXR2NOKaDo0TVNr0Ahb3qQDFVbiDDQsB9b6YeMtbo3koZ6Ko4OR7578iOx+GrnkoFCm78D0XUTmR6Ps/Ex4fHQhIzICF+FiT9+XuEYWYNVWMHXmU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776261944; c=relaxed/simple; bh=GinynodeLSk9D94lObdTgdnoKuabwLn1gG9SeHBc73g=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=YrLPYLJBfmlQPM4UduDgg+5qiU8BAJ7IEgbgfAjhFiMghrOV0vxy01M9HRGc9QnqLeASvk3lzstdhLjvrWEwQOa6TKg2bIj1536dFCaMsU/5Aa0FgQM5/WfvQ/I6+TqOXRMWbPqixEzn50tHVQ5RCjcWsrKi6MlaXKJM6+SgUsA= 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=Td8TkdgN; arc=none smtp.client-ip=209.85.210.170 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="Td8TkdgN" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-82f138a6d5aso2312469b3a.0 for ; Wed, 15 Apr 2026 07:05:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776261943; x=1776866743; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=JhMXx7gXY1dD+D+IXaFNdkEaadu4kqcUrwYP3v202/0=; b=Td8TkdgNUL3S2728oWs8+JT4U4ja7+cgoXTOZKIi/pW5txfPDOVcPZpjbHLt89RbKY 0ZZYk/f0l1U+pbWJ3SuvBVm+rwluRqfDj/2zNE0vHKPv3PvXziEjo1Csy/3inLDp9F1n KL6tvxSvMK2yFqrrKVpZIqTA/X+LDkTMV5kIjJk22GG/b9e8dwq9cv3LhuMY4RL5FTuz SZ6kZrFVJb3aBuc2hqQuW2YO4dGxhBBj/W+rZsSzyk06OqCmRkNVXy7tQyGQ7QOVYLgB UaM4M2fYFdQ/rJfDHXEQzSCqTTAPpAj57rxawq9DEkS0yN6grmfDq7TokzYW+TM9/us3 oPnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776261943; x=1776866743; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=JhMXx7gXY1dD+D+IXaFNdkEaadu4kqcUrwYP3v202/0=; b=Yq1YpY1rtKQ6x1e7ZH5jjMYQUYdTbJSN565XNucH04WV18E8hOtIuAUexwVeSPInxZ /iuqclepfQF18+0IsgBHVeYPsUcpoyS00rE9YvYobm6H+3yaY0V+7v5yWN4Ww7HcclhK 9Pg9J7CaM9OWULVSLe7NmZY6JoGcYFSMkRoFto79NyU7KhQtTqqadDmSjUm/R86x+BYb XD4teTDdk6VOTJ2s352mgYYXjqjSGKMRXEPTTDywsSG495cO28CTffoD/90oVuSaMx87 VC9ixJoukKtbRT2JvNHtJ44ZUnnuOAH2MC4jn7ffr0lD7DoIr/Uc9cJYRBUxa8BpVqYv w9NQ== X-Forwarded-Encrypted: i=1; AFNElJ8iVD3gcaRZIHrMrooLMUjyyjBuI1KhyzToGKGBgcFJhT06V6v02st7o1CWptk7G0X8JEGjFM+GjJFOW1A=@vger.kernel.org X-Gm-Message-State: AOJu0YwcR6ozAWmjcptg+0kqwkcucbU4SrxqBs7wcBsaSqRev3E3ROP4 h4RQgtdr5WQFjQYbYMl51DwxsJ4T2T8u9eJSJuF2mB/i2jnykTjNawJE X-Gm-Gg: AeBDievoAJ/Y+YKFK6MRqO74LSpEacvSea5hEiAyS8TCfLerFxfSpZAMSHAPifarUcw Ur7BDYu9eV9V7x6zr4JqotvdtuKHSaVVFLEWg7OCaym83zXOPfEM1xpV8OH5x3icydxE1m/QNlg 2ktVXKBlKgX4Xi+mn8SoIn0W9OtIVh6zVuGIkuxsEV4+aIaJQ43E/LARDP1F6Y0UcTAFdFFF6l3 4cEE1yu/gu4ZM2RTQWFu+X5/zi+uxy+RGllZTAWJ7Cx54kpHzVSwhUw/r3mqjx40SnsIBlAeSih k85LwCd+JU4T8kwoJx4ZNZAFRjJEkeVGYbY0ol+Im/K0rGXhXjUXaghzjJ6noMkiVsgORkJ6fuN 0PaYQlesI1S1/l8ecarpZ332H6myt1tG6I991t0FMYjeVYrEGWASU5y1i+/kadbDGQS8ysceK4J 8VSL40iheKB6Z/KxzQcI4KUuubvdAu+L4= X-Received: by 2002:a05:6a00:ace:b0:82c:e775:d43a with SMTP id d2e1a72fcca58-82f0c3562camr23289124b3a.35.1776261942884; Wed, 15 Apr 2026 07:05:42 -0700 (PDT) Received: from lgs.. ([223.80.110.69]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f67416319sm2178857b3a.46.2026.04.15.07.05.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 07:05:42 -0700 (PDT) From: Guangshuo Li To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , driver-core@lists.linux.dev, linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] platform: fix reference leak in platform_add_devices() on register failure Date: Wed, 15 Apr 2026 22:05:26 +0800 Message-ID: <20260415140526.3290729-1-lgs201920130244@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When platform_device_register() fails in platform_add_devices(), the embedded struct device in devs[i] has already been initialized by device_initialize(), but the failure path only unregisters previously registered platform devices and does not drop the device reference for the current one. Previously registered platform devices are cleaned up in the rollback loop, but the platform device that fails registration is not, leading to a reference leak. The issue was identified by a static analysis tool I developed and confirmed by manual review. Fix this by calling platform_device_put() for the current platform device before unregistering the previously registered ones. Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- drivers/base/platform.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 75b4698d0e58..9a4ae2100401 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -548,6 +548,7 @@ int platform_add_devices(struct platform_device **devs,= int num) =20 for (i =3D 0; i < num; i++) { ret =3D platform_device_register(devs[i]); + platform_device_put(devs[i]); if (ret) { while (--i >=3D 0) platform_device_unregister(devs[i]); --=20 2.43.0