From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ECE86C433EF for ; Tue, 10 May 2022 15:47:57 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 1FDBA191B; Tue, 10 May 2022 17:47:06 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 1FDBA191B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1652197676; bh=+m4xr2VstQvfmpmlbh/Hzx8ERJ0r2on0tJLdU5O4+6U=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=mDWytSHh/gytnRAazFfDAX7LNyXEKUM3jsI6Pyt4hV0JbiQTvvccvIKDswX9iTbjC ce9jWZ6MudGlhRuCcYH7neDdMsITk1QYWmMgPd/H5khZAF7t+4x+bPNxCu9B45JNdd 3Nhl1E3NqZKKv8IvwbOHisLIEJZTXQtkmLuDOJ9k= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id C069BF80510; Tue, 10 May 2022 17:45:32 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 453D3F80240; Tue, 10 May 2022 17:45:26 +0200 (CEST) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id AD5CCF804BB for ; Tue, 10 May 2022 17:45:19 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz AD5CCF804BB Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="C+AYDTtG" Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5952561329; Tue, 10 May 2022 15:45:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CAA43C385C2; Tue, 10 May 2022 15:45:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652197517; bh=+m4xr2VstQvfmpmlbh/Hzx8ERJ0r2on0tJLdU5O4+6U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C+AYDTtGfc6NI6/rRcZetALBPs3cQsacGkCe8eQOFc3nNjzE3K1u1sR6Wf2r1eMSQ DOKiy51xa6N8fB6GnIGfpdepRuY6MNcQXeqhhhrCNGYHnJzVGjXIGUsAmYmoIAn24C hO9adxcLXRxL86B8cRV3Pbm9DEromxKJd+vdGvtUmyEELAed2Pu4CSGlpl0qVEfbmt LkFrBAKgccQwRwA9Sl8eYNlIPeWtEHv1joqXwkHk2X1dH+uXZ/yGcGqg/Rk2juSh8B id97JSjchfuAFQRAphq/bxFleM48YP+7Z689ufYAQ6BslRdHaKLChnx7eSVoW8tC6n 48plY8Yb5RKwA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH AUTOSEL 5.10 2/9] ASoC: max98090: Reject invalid values in custom control put() Date: Tue, 10 May 2022 11:45:05 -0400 Message-Id: <20220510154512.153945-2-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220510154512.153945-1-sashal@kernel.org> References: <20220510154512.153945-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Cc: Sasha Levin , alsa-devel@alsa-project.org, lgirdwood@gmail.com, pierre-louis.bossart@linux.intel.com, tiwai@suse.com, Mark Brown X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" From: Mark Brown [ Upstream commit 2fbe467bcbfc760a08f08475eea6bbd4c2874319 ] The max98090 driver has a custom put function for some controls which can only be updated in certain circumstances which makes no effort to validate that input is suitable for the control, allowing out of spec values to be written to the hardware and presented to userspace. Fix this by returning an error when invalid values are written. Signed-off-by: Mark Brown Link: https://lore.kernel.org/r/20220420193454.2647908-1-broonie@kernel.org Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/codecs/max98090.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c index 945a79e4f3eb..779845e3a9e3 100644 --- a/sound/soc/codecs/max98090.c +++ b/sound/soc/codecs/max98090.c @@ -413,6 +413,9 @@ static int max98090_put_enab_tlv(struct snd_kcontrol *kcontrol, val = (val >> mc->shift) & mask; + if (sel < 0 || sel > mc->max) + return -EINVAL; + *select = sel; /* Setting a volume is only valid if it is already On */ -- 2.35.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6475BC433F5 for ; Tue, 10 May 2022 15:49:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239264AbiEJPxg (ORCPT ); Tue, 10 May 2022 11:53:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346540AbiEJPvD (ORCPT ); Tue, 10 May 2022 11:51:03 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B85F428B863; Tue, 10 May 2022 08:45:18 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 562E261426; Tue, 10 May 2022 15:45:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CAA43C385C2; Tue, 10 May 2022 15:45:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652197517; bh=+m4xr2VstQvfmpmlbh/Hzx8ERJ0r2on0tJLdU5O4+6U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C+AYDTtGfc6NI6/rRcZetALBPs3cQsacGkCe8eQOFc3nNjzE3K1u1sR6Wf2r1eMSQ DOKiy51xa6N8fB6GnIGfpdepRuY6MNcQXeqhhhrCNGYHnJzVGjXIGUsAmYmoIAn24C hO9adxcLXRxL86B8cRV3Pbm9DEromxKJd+vdGvtUmyEELAed2Pu4CSGlpl0qVEfbmt LkFrBAKgccQwRwA9Sl8eYNlIPeWtEHv1joqXwkHk2X1dH+uXZ/yGcGqg/Rk2juSh8B id97JSjchfuAFQRAphq/bxFleM48YP+7Z689ufYAQ6BslRdHaKLChnx7eSVoW8tC6n 48plY8Yb5RKwA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mark Brown , Sasha Levin , lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com, pierre-louis.bossart@linux.intel.com, alsa-devel@alsa-project.org Subject: [PATCH AUTOSEL 5.10 2/9] ASoC: max98090: Reject invalid values in custom control put() Date: Tue, 10 May 2022 11:45:05 -0400 Message-Id: <20220510154512.153945-2-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220510154512.153945-1-sashal@kernel.org> References: <20220510154512.153945-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mark Brown [ Upstream commit 2fbe467bcbfc760a08f08475eea6bbd4c2874319 ] The max98090 driver has a custom put function for some controls which can only be updated in certain circumstances which makes no effort to validate that input is suitable for the control, allowing out of spec values to be written to the hardware and presented to userspace. Fix this by returning an error when invalid values are written. Signed-off-by: Mark Brown Link: https://lore.kernel.org/r/20220420193454.2647908-1-broonie@kernel.org Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/codecs/max98090.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c index 945a79e4f3eb..779845e3a9e3 100644 --- a/sound/soc/codecs/max98090.c +++ b/sound/soc/codecs/max98090.c @@ -413,6 +413,9 @@ static int max98090_put_enab_tlv(struct snd_kcontrol *kcontrol, val = (val >> mc->shift) & mask; + if (sel < 0 || sel > mc->max) + return -EINVAL; + *select = sel; /* Setting a volume is only valid if it is already On */ -- 2.35.1