From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE7811A38D0; Tue, 9 Jul 2024 16:20:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720542047; cv=none; b=KvIidC813WQ7zmXqovG9NTMUdBcoYuIhZyj9cA1ZlWXBmG0rpdMxf17gULqRPOQASFDl/KkJupbCVWfH202Y/MmNWarLGt9WPzCpAEehQkf8m0oL+RGUAT30Ut9pgMyO/HTgyypx7PfWa5eCntikX72aOQlu2r7v+iwmPsSAvv8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720542047; c=relaxed/simple; bh=ltzYbqBSAsYq3NY8adIjZxq9DCh2BUeSgr1YqEvde48=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=r/rxL+ChGQ62R/F8j1ysXGUuLfgwLhQzQanBIEQZn0GDNQ+XNkc3iqpEtHDLZzjknGWGlGzV7EHIcm87a62z3E64yt0kQozS0N9p814ZpIuL2sZmyXVfKYhttzXDeDy2sPbsOlNDVkWeBF3ww8G8N/0mAT65sUyhj/nat8+G2Co= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R8ALa45F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R8ALa45F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 28B20C4AF07; Tue, 9 Jul 2024 16:20:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1720542047; bh=ltzYbqBSAsYq3NY8adIjZxq9DCh2BUeSgr1YqEvde48=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R8ALa45F+kwGeGau8S9giqv0Wev9y7CV6/YNwnal+dXqPH0mdS3UuoNa1Izgii93d ClAQqrrHxC5ySPeJ7D6JIJJiQFousLvP0XJQ93xczeNoYmwWuesEX2MfbtZi053QY4 GZe9rfd3ZB4Joyf/qmyv0gsGOcMLDgAN0FMCboe2EQB+G/DmBmmXL35JrRT8tC1Ak2 e3novff3RMO1tq7XS00gw4uvDviPkgnuYmRak85ylKmZK8oLC4GAA8/1B3nx5Tr5Y2 WavGlxkPVWsHDhUqd0uSWBxklBC2epC2ZxXNrbSgsyUDhCil4rSKV2jS4XbIHAgQTV 4stKVx65FzMGA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= , Pierre-Louis Bossart , =?UTF-8?q?P=C3=A9ter=20Ujfalusi?= , Mark Brown , Sasha Levin , lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com, linux-sound@vger.kernel.org Subject: [PATCH AUTOSEL 6.9 17/40] ASoC: topology: Fix route memory corruption Date: Tue, 9 Jul 2024 12:18:57 -0400 Message-ID: <20240709162007.30160-17-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240709162007.30160-1-sashal@kernel.org> References: <20240709162007.30160-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.9.8 Content-Transfer-Encoding: 8bit From: Amadeusz Sławiński [ Upstream commit 0298f51652be47b79780833e0b63194e1231fa34 ] It was reported that recent fix for memory corruption during topology load, causes corruption in other cases. Instead of being overeager with checking topology, assume that it is properly formatted and just duplicate strings. Reported-by: Pierre-Louis Bossart Closes: https://lore.kernel.org/linux-sound/171812236450.201359.3019210915105428447.b4-ty@kernel.org/T/#m8c4bd5abf453960fde6f826c4b7f84881da63e9d Suggested-by: Péter Ujfalusi Signed-off-by: Amadeusz Sławiński Link: https://lore.kernel.org/r/20240613090126.841189-1-amadeuszx.slawinski@linux.intel.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/soc-topology.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c index 52752e0a5dc27..27aba69894b17 100644 --- a/sound/soc/soc-topology.c +++ b/sound/soc/soc-topology.c @@ -1052,21 +1052,15 @@ static int soc_tplg_dapm_graph_elems_load(struct soc_tplg *tplg, break; } - route->source = devm_kmemdup(tplg->dev, elem->source, - min(strlen(elem->source), maxlen), - GFP_KERNEL); - route->sink = devm_kmemdup(tplg->dev, elem->sink, - min(strlen(elem->sink), maxlen), - GFP_KERNEL); + route->source = devm_kstrdup(tplg->dev, elem->source, GFP_KERNEL); + route->sink = devm_kstrdup(tplg->dev, elem->sink, GFP_KERNEL); if (!route->source || !route->sink) { ret = -ENOMEM; break; } if (strnlen(elem->control, maxlen) != 0) { - route->control = devm_kmemdup(tplg->dev, elem->control, - min(strlen(elem->control), maxlen), - GFP_KERNEL); + route->control = devm_kstrdup(tplg->dev, elem->control, GFP_KERNEL); if (!route->control) { ret = -ENOMEM; break; -- 2.43.0