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 9144D1A00CF; Thu, 15 Aug 2024 14:06:37 +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=1723730797; cv=none; b=Uzv4jT5IAcnU3pk1iC9wMe26z8ukSy4fs0cRKxQQ15vV13nTRzD3R80wutEHj338UFNttGFN5ngOtGAvrrgmlHJt7y8a9Pw2c1kRbyIXOul8nOaB3ZPbKAf8ezRbbcvKNA0yu0qYmGGiArE1J6wgc2nV62ctcztRHKuETV7eIC8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1723730797; c=relaxed/simple; bh=8bb42/AbSsJTu0cvusXJNA/e9TDM/C5QGgEGmV7u/Xs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dnrzq+qmqeezHbEZ2V9eHtFXvVrveLhvwak/WvkqNs3OfodqqpYvJ5BD8NNKkaC1MAhJ7gs8WBVGgVSsoYQDu0HuHtzzAXpqS+K+yKd8J1Mldeg8McMCg9UYQbrw3rnJMiF8Y7xN8mZSyXR2s60wzyjiw5pAVhg8ROXgu+lido8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=cmuo8txP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="cmuo8txP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C8DFC32786; Thu, 15 Aug 2024 14:06:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1723730797; bh=8bb42/AbSsJTu0cvusXJNA/e9TDM/C5QGgEGmV7u/Xs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cmuo8txPves96XuRZUQ0a9NppmMxIJ0LaYCoeFJpAw7/TJjGmO22zXf0DkwqzShr+ bn0DLJ+V9HtklaXMFbjr4EAGsHMv/WpRGfuOUYY4GVluFWlTx02ZDDK2JALFn9lO/I y/9zcYVuGZczHSP2JgwNBxqtyXUOPtE6c7xT5TFo= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Pierre-Louis Bossart , =?UTF-8?q?P=C3=A9ter=20Ujfalusi?= , =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= , Mark Brown Subject: [PATCH 6.1 07/38] ASoC: topology: Fix route memory corruption Date: Thu, 15 Aug 2024 15:25:41 +0200 Message-ID: <20240815131833.237753634@linuxfoundation.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240815131832.944273699@linuxfoundation.org> References: <20240815131832.944273699@linuxfoundation.org> User-Agent: quilt/0.67 X-stable: review X-Patchwork-Hint: ignore 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 Content-Transfer-Encoding: 8bit 6.1-stable review patch. If anyone has any objections, please let me know. ------------------ From: Amadeusz Sławiński commit 0298f51652be47b79780833e0b63194e1231fa34 upstream. 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: Greg Kroah-Hartman --- sound/soc/soc-topology.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) --- a/sound/soc/soc-topology.c +++ b/sound/soc/soc-topology.c @@ -1093,21 +1093,15 @@ static int soc_tplg_dapm_graph_elems_loa 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;