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 5C0BFC433F5 for ; Tue, 10 May 2022 15:46:15 +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 7E1B81901; Tue, 10 May 2022 17:45:23 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 7E1B81901 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1652197573; bh=z1xGkviBQ2FOGy3TPlU9X8IBjkMBTFmQhrxx6TChBBM=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=UOHYIzBSAKNiBNIuzkOrdcJc7DniVn8lO+jZl/H3cCqjA0F1acCG7nz22sQsYmMn7 n+ZpHq+TpxaMRgATwi+pwBwuYpli5NYsyXb44T4s0ocki8+WIbXFaH7t8NsHEUO4Gf EBjvVpNBzy1ztcJm8BT6H2Zn+ZFGvAok5+wKRztE= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id D6E9DF8019D; Tue, 10 May 2022 17:44:42 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id AD035F80508; Tue, 10 May 2022 17:44:41 +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 3EAE1F80116 for ; Tue, 10 May 2022 17:44:39 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 3EAE1F80116 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="okTfEeO3" 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 17BD5614E8; Tue, 10 May 2022 15:44:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D785C385C2; Tue, 10 May 2022 15:44:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652197477; bh=z1xGkviBQ2FOGy3TPlU9X8IBjkMBTFmQhrxx6TChBBM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=okTfEeO3oxJTRXcn5jXL/anGQNxRrq7wUQZCLT1cLdvOFyE3plfraN44CWYl8jkAf YMRiImcpr/EBC4OFvwadaxLh11y/NcLUcAagx+EGqw1n90uZOvY/PRjpm44QaqXoOk JKe9fE7ithDskeX3xaT+L1scv+GFzqLVyMF+u2lSk8qWvYuWl9ahjjeD4bsgpTTadr sxgZZZvWsAtvZ30yYb7kQ+C1wSasZIlC7i0LIkjFZTMZnH5OT99i7VHsqjH5Mq8pBc 6GOm7xmHZjULL/jDgK3vC8IAf7QQmqUMD6t2ZDnqCA+0bPGec3A9/xrWWh/Fw89HeL NLNr+Ir8B/9eA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH AUTOSEL 5.15 04/19] ASoC: max98090: Reject invalid values in custom control put() Date: Tue, 10 May 2022 11:44:14 -0400 Message-Id: <20220510154429.153677-4-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220510154429.153677-1-sashal@kernel.org> References: <20220510154429.153677-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 b45ec35cd63c..6d9261346842 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 9F5AAC4167B for ; Tue, 10 May 2022 15:48:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346548AbiEJPwc (ORCPT ); Tue, 10 May 2022 11:52:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346404AbiEJPuC (ORCPT ); Tue, 10 May 2022 11:50:02 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E468285AC5; Tue, 10 May 2022 08:44:41 -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 sin.source.kernel.org (Postfix) with ESMTPS id 70440CE1F39; Tue, 10 May 2022 15:44:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D785C385C2; Tue, 10 May 2022 15:44:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652197477; bh=z1xGkviBQ2FOGy3TPlU9X8IBjkMBTFmQhrxx6TChBBM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=okTfEeO3oxJTRXcn5jXL/anGQNxRrq7wUQZCLT1cLdvOFyE3plfraN44CWYl8jkAf YMRiImcpr/EBC4OFvwadaxLh11y/NcLUcAagx+EGqw1n90uZOvY/PRjpm44QaqXoOk JKe9fE7ithDskeX3xaT+L1scv+GFzqLVyMF+u2lSk8qWvYuWl9ahjjeD4bsgpTTadr sxgZZZvWsAtvZ30yYb7kQ+C1wSasZIlC7i0LIkjFZTMZnH5OT99i7VHsqjH5Mq8pBc 6GOm7xmHZjULL/jDgK3vC8IAf7QQmqUMD6t2ZDnqCA+0bPGec3A9/xrWWh/Fw89HeL NLNr+Ir8B/9eA== 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.15 04/19] ASoC: max98090: Reject invalid values in custom control put() Date: Tue, 10 May 2022 11:44:14 -0400 Message-Id: <20220510154429.153677-4-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220510154429.153677-1-sashal@kernel.org> References: <20220510154429.153677-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 b45ec35cd63c..6d9261346842 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