From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f169.google.com (mail-dy1-f169.google.com [74.125.82.169]) (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 65A2739E9C3 for ; Tue, 12 May 2026 14:04:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778594656; cv=none; b=CUoWKgiQgshUXyovY64ZhAphiZx1GpjS1mS6ifKlMD8//0FMnEHmS95Uz/J5PL+b6cTJjnT8gDd9vWMr0xHXLaO+FUBD30Odb6eEpRbwYoQ7zUznwr15125d/eJpFsCrBxwODkvwpiXKVwXovx2dzR1STfSzmqrhDouk7Z/tyn0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778594656; c=relaxed/simple; bh=8I6fi74loWUHKZ3hiYLi1xwooOugxFYoYK70kIaZpOM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=m3TDEoU4ck/fVnsfmt1O9B57XuN/5lKD7VKWm8BhwH58Y6Em1NxguZoZoSvRrp942udnofmhtivddByUxKU82B0PpbfgTMjFvg1onQb/zgUi48exc2xfbCAy7UPx0xj+DKG+2Xu8+39v7Yo2x93jIvy6nifrQ2V8tIt9eNgXI7o= 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=jcRJt5mF; arc=none smtp.client-ip=74.125.82.169 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="jcRJt5mF" Received: by mail-dy1-f169.google.com with SMTP id 5a478bee46e88-2b4520f6b32so9627085eec.0 for ; Tue, 12 May 2026 07:04:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778594653; x=1779199453; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=cIylp4OsOSrKcmib632OACEJsu5UwQnidt2a4e2Vgok=; b=jcRJt5mFp8TRmYRWrHZVs92SYPLGliVqgoNmVxGPvNRJd4a5ISXMcjIV9h1QPg1YDj 4vxFO48D54J9FT4t4r7PXKPFR7H5Q34AtZTZXoVJ7K3DbRgwN8S9UvYYmfiNDNJkGzsf KrtUVKFoGnha/2EQ6t173eEZ9Uox60rUxVT3YC/YWb5tH8bDEO0sBfIVZX6EYMtAOGh3 qoJ6nMyF4AhGpOV0HOIX80JsmDZmiM/LlQiq8SKmVYjIkZVNTS2UyUzno/19cVh4Pzp2 s92Ffa0vfzhgVH7167S3NibzWlT0CwdVGhImCECi3mfBz6aTSB0KBwE313zuFHDvgbU1 Oh9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778594653; x=1779199453; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=cIylp4OsOSrKcmib632OACEJsu5UwQnidt2a4e2Vgok=; b=dK+ca4uTeCaG1YSDPYcm9EWhkGWXE8pb/ePNuEK0s8VGdqZ+YYRaSI57NnecJ3Ln/D O+QwVyYF9wHzK091lU53WNYzEQRQx84XVlA/snduFwMjAUu7ev4hKpYULvmwL5SZwYcH FR+yEM4of1xIQ5af2XDiQhksSfxdCAboI4yaS1rEFNtIzHBPR1U+CSkuMeDqotmHT3k4 vFUgp2rNnzIGseBxvVUHaig/yhU9k5JPPCKxa5JK15mrIRB6MoVm9cwgHiYRwZlyWeeG pzP6fEv9pu3gVZPwXDY97XhEt3H2PBBzs/qOj3tBsdqVBIQYrKcgTKr8a28Z3CriswsD 02Xg== X-Forwarded-Encrypted: i=1; AFNElJ+AXOqIoID94qgZWMYArV/7KHb54oTwbZwermGpSUH49GtHRwwHA0NNquz+qE8osnXCoR2kgsU63Etw744=@vger.kernel.org X-Gm-Message-State: AOJu0Yzcksbes7ZB6zqSd3W2s2IBQBdtj+8XNOmXDLOirWo/qYQ86SA0 T2e8kGETSB7FSxLuMA4hbJSpNr6uJMFALjx6S4dVEKgUFayEfSwFbwLs X-Gm-Gg: Acq92OElPOk9bbZXAR6j6MFcy03vfsxI74GhOeSyCwRW5133ZO1sqjxbZqPQ/iqlxXP 785acx3un4kLfCsSqto9s7tX0LJ/VBV7Y+95QBZChix/R2p8dJmNXu7RclkqbRi4sOVVq7nS0ZC +7sodk7g/GTJSemc0K9YfXUOspiK+SVg/2ZLAdIH/twZJSARdJpOV1P++3tMwsjxSOyMBBAnAlN NwoLUlNcigLub06IEA46gYgBUISu6mjtL+MX6es352kcI0FW/YWOB8uqJHBJDSAxew6WckmCr6j qA3Bj8jQVdAQO0kXpC97fAgUgOamoRnHd1gOcATFey5v81IscG1FMs2A6d1zejsojQpo/oVGY3E 52meMvvj5/LT/+WHbBPSaU2QELVyrzTbVcrMBWsWIg4F0wZvpk63d/c2Hi6QChxB3+8AXyjZvcB 5tQCqF0g/wBSMop+nkQFB1yVVlL4VItGNz+NWksR+D8yEu/Q/wq7YkrcbdIrtONhxd42Ukc1gos w== X-Received: by 2002:a05:7300:a987:b0:2d8:7302:d3d with SMTP id 5a478bee46e88-2f54dc8c2b0mr13570569eec.8.1778594652981; Tue, 12 May 2026 07:04:12 -0700 (PDT) Received: from [192.168.1.18] (177-4-161-87.user3p.v-tal.net.br. [177.4.161.87]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2f88885be8esm18203043eec.22.2026.05.12.07.04.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 07:04:12 -0700 (PDT) From: =?utf-8?q?C=C3=A1ssio_Gabriel?= Date: Tue, 12 May 2026 11:03:53 -0300 Subject: [PATCH] ASoC: sdw_utils: Check speaker component string allocation Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20260512-asoc-sdw-utils-spk-components-alloc-v1-1-c9bbd6d2e123@gmail.com> X-B4-Tracking: v=1; b=H4sIAAAAAAAC/yXNQQrCMBCF4auUWTuQRirGq4iLOJ3qaExCJlWh9 O5GXX48+N8CykVY4dAtUPgpKik29JsO6OrjhVHGZrDG7sxgHHpNhDq+cK4SFDXfkdIjp8ixKvo Q2jxsHfduMntvCVopF57k/Xs5nv7W+Xxjqt80rOsH2hQNh4cAAAA= X-Change-ID: 20260509-asoc-sdw-utils-spk-components-alloc-539e19f08a2c To: Liam Girdwood , Mark Brown , Takashi Iwai , Jaroslav Kysela , Shuming Fan , Bard Liao , =?utf-8?q?P=C3=A9ter_Ujfalusi?= Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?C=C3=A1ssio_Gabriel?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2281; i=cassiogabrielcontato@gmail.com; h=from:subject:message-id; bh=8I6fi74loWUHKZ3hiYLi1xwooOugxFYoYK70kIaZpOM=; b=owGbwMvMwCV2IdZeKur/u2bG02pJDFnMxpFc2ye5n7NmKA5SLHQ8lzi9X+a76f9VM0v4jolJt mS0L/HoKGVhEONikBVTZFmdtMhyT9eDq/VxKzxg5rAygQxh4OIUgIl8YmP47/HvIcu1Y6/XxvwP XunrK7S77UTVDaM5EyYt1y+/rhzRuJvhr8z/Dvbj1rarrDfW86/L2b1dLlN5mk7UhskPJ+Ytvnd mCR8A X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp; fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83 devm_kasprintf() can fail while building the temporary speaker component string. If that happens, spk_components is set to NULL, but the current code can still pass it to strlen() on a later loop iteration or after the loop when appending the speaker component list to card->components. Use NULL to represent the initial "no speaker components" state, and return -ENOMEM immediately if building spk_components fails. Fixes: 0f60ecffbfe3 ("ASoC: sdw_utils: generate combined spk components string") Signed-off-by: Cássio Gabriel --- sound/soc/sdw_utils/soc_sdw_utils.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sound/soc/sdw_utils/soc_sdw_utils.c b/sound/soc/sdw_utils/soc_sdw_utils.c index d8378d1b435e..5f4cfb2aa9d4 100644 --- a/sound/soc/sdw_utils/soc_sdw_utils.c +++ b/sound/soc/sdw_utils/soc_sdw_utils.c @@ -1265,7 +1265,7 @@ int asoc_sdw_rtd_init(struct snd_soc_pcm_runtime *rtd) struct asoc_sdw_codec_info *codec_info; struct snd_soc_dai *dai; struct sdw_slave *sdw_peripheral; - const char *spk_components=""; + const char *spk_components = NULL; int dai_index; int ret; int i; @@ -1348,7 +1348,7 @@ int asoc_sdw_rtd_init(struct snd_soc_pcm_runtime *rtd) else component = codec_info->dais[dai_index].component_name; - if (strlen (spk_components) == 0) + if (!spk_components) spk_components = devm_kasprintf(card->dev, GFP_KERNEL, "%s", component); else @@ -1356,13 +1356,15 @@ int asoc_sdw_rtd_init(struct snd_soc_pcm_runtime *rtd) spk_components = devm_kasprintf(card->dev, GFP_KERNEL, "%s+%s", spk_components, component); + + if (!spk_components) + return -ENOMEM; } codec_info->dais[dai_index].rtd_init_done = true; - } - if (strlen (spk_components) > 0) { + if (spk_components) { /* Update card components for speaker components */ card->components = devm_kasprintf(card->dev, GFP_KERNEL, "%s spk:%s", card->components, spk_components); --- base-commit: b69796b4e3f78b1c41c0e6f558e882ec095469fc change-id: 20260509-asoc-sdw-utils-spk-components-alloc-539e19f08a2c Best regards, -- Cássio Gabriel