From nobody Tue Jun 16 03:48:01 2026 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (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 305D921D3E2 for ; Wed, 15 Apr 2026 19:31:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776281508; cv=none; b=Vp7vNRAv47WhnKDwDy7oeMPZ2lICpl34zqTdJqEyBkdwViXR4w20pVfZSoyUQfXn4hTHNn5GBF2H2+gTTZjmRH8RYIfm1Zp0vKtibf9X8wxTzJ0NUr+aSTfOybK7uyT6PwN2O8zR4ShfqwZC4P0GJsT7ikZfLin06FZKWLg3LhI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776281508; c=relaxed/simple; bh=asgX9bZgN871VW8IBcMTNA0C06TYpe28e4YJgMp0wvg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=uY78FYP3DDGXI6eiTcOiDXQTqgADZ4MnTce7x5d87E+jdxYwsMhYuhjE87MHhx0N0+X8HfNNJ6+a0yoIOWqs7pbgKwr+kcArksb1doCZmhCqEj1lLvG+2cdfN3NEU1gjsXvNJNWnNfOxJu/nr9tIgrss+575nrUacv6MMeBYqOY= 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=kuK5ONyf; arc=none smtp.client-ip=209.85.216.51 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="kuK5ONyf" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-35d99031e4eso4232851a91.1 for ; Wed, 15 Apr 2026 12:31:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776281506; x=1776886306; 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=UNbHuV79KfOM82xdjXOagbN4R3U9h/0lIOtBKfl6MnA=; b=kuK5ONyfVKfdLvuCOS3jLGf9pz6359Tj4/VcxLeqfmupDRoce+dcYVuJkTINVQQI/R y4fDgrIJOgan/AN7nqTwC1MeOhVSeGH5gR1uGu+L2E6izF1tFuoSu5K4E+Y6gf37b9nR d4Hj+Okdqf6SzTpZZv72pM/52BRKuWGoivYmvqmiWiSC//WqG95oGHp+1j+T3IXwyeoD xQNZr5y/foGy09SnxQQ+I1/PQ6Q5Jg4uGfjTVI7D39Lpo6u3WhPEvzOlf7cv45t+CHGH BGhtEeqPuRIle8YKG9nYhUSQ+7QRBohy1GyV9X9Q5WBKd43NM5yb86Pa9g7WwK8WPABA eYJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776281506; x=1776886306; 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=UNbHuV79KfOM82xdjXOagbN4R3U9h/0lIOtBKfl6MnA=; b=osthvQTZlPIIs34XLefSdwhlSA7NQ0heSvXJfAC4QJEw3iFoj6b65jQc2C5vPAgOHR jaTKpjkRukIjaAhdRGsbwtJpl+kx34H6L5dziHT9MalgiU9SqBpSJ3bqMvm4rWihXsC9 P+5dZlyhM0IVWf4qR9gauCriH/AbBhF8Ebe0hVh5z/NPUwOzyybRJAu8eXqEkyK21XA7 6ROZmpPGziB+UnE5yWo89Rf59la5XQKV4G48mXaqeEbjFG3jvTLeCGfqHACjwc5BPK4T uN6gc6vVagw8Vfym2ShMUaOeaPWQvbJEjf0KLbVj0LZUchgaN7ZVctiLdAZXAJw35PRf PY6w== X-Forwarded-Encrypted: i=1; AFNElJ81LZMVa1ukDt9c68ZRdVo0qxfGIoopN96moqIOvJp88ivcyXBAI8CgEgQyjfSsyV3I8KeJTJysmq1iEjg=@vger.kernel.org X-Gm-Message-State: AOJu0YzDuDb72/GU/7CKhhmOWeWMuNWEpkWwBOLJ2nAxOxDcKxFN57O6 iZPblln8UUbaZkTTMnABm7HSQoBdvK2cyZ6lXJ64aJc81W4G3RAi0Jle X-Gm-Gg: AeBDietuSuduL30EWIyO/MBZnDotVS5cnu1YWzr1bjbsBCJqxSUPEtSq0Wm2Sk2Z5n5 wUtZo4t5ZPLzi2wum71PgOq0RcKPNlea+YydYSlMnwpP9N8GSkCm6DTJT2KvTiAKRXSLPVts1Fo PRXQvijz/ZmEza7v7orsAzKYvLC+25KOZVkixASokOWK9ifLy6m/3TVvz5hA8VA20bm3B5+YGl5 Xr5K8FUgKkPgcI3Wsc+jqQChCgiQS6R0wgrOVLcKc6saXhgz3OQCedo1IcY8yF7IsONwkFvsyME 01f7qRlHSJ6rzsVsNqRR9i5FjOp29I/46rUXtBs4wCPag/UbqhcyHPgf4+JrvuQDIXVRNpxDda+ SL4n2EAcAGzzzOFFoDK8dXAYaZ62bWSb5pqXjt6z+HJd5c1VpgdtRt6AMQ8LGcPBecNy4jo5T2Z J0RdFHyUflUcPWlKO++aTZK4+4L4jrqfP1nLwqnRrqgQ2XMg== X-Received: by 2002:a17:90b:3950:b0:35c:1695:24a3 with SMTP id 98e67ed59e1d1-35e4281374emr22489139a91.23.1776281506503; Wed, 15 Apr 2026 12:31:46 -0700 (PDT) Received: from lgs.. ([2409:893d:1171:10e2:93ee:194:b07d:a9b2]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35fce7d792csm1711666a91.1.2026.04.15.12.31.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 12:31:46 -0700 (PDT) From: Guangshuo Li To: Ivan Orlov , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] ALSA: pcmtest: fix reference leak on failed device registration Date: Thu, 16 Apr 2026 03:31:38 +0800 Message-ID: <20260415193138.3861297-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 mod_init(), the embedded struct device in pcmtst_pdev has already been initialized by device_initialize(), but the failure path returns the error without dropping the device reference for the current platform device: mod_init() -> platform_device_register(&pcmtst_pdev) -> device_initialize(&pcmtst_pdev.dev) -> setup_pdev_dma_masks(&pcmtst_pdev) -> platform_device_add(&pcmtst_pdev) This leads to a reference leak when platform_device_register() fails. Fix this by calling platform_device_put() before returning the error. The issue was identified by a static analysis tool I developed and confirmed by manual review. Fixes: 315a3d57c64c5 ("ALSA: Implement the new Virtual PCM Test Driver") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- sound/drivers/pcmtest.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sound/drivers/pcmtest.c b/sound/drivers/pcmtest.c index 768bb698adfb..20ceb9082fa9 100644 --- a/sound/drivers/pcmtest.c +++ b/sound/drivers/pcmtest.c @@ -756,8 +756,10 @@ static int __init mod_init(void) if (err) return err; err =3D platform_device_register(&pcmtst_pdev); - if (err) + if (err) { + platform_device_put(&pcmtst_pdev); return err; + } err =3D platform_driver_register(&pcmtst_pdrv); if (err) platform_device_unregister(&pcmtst_pdev); --=20 2.43.0