Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp644953ybz; Wed, 22 Apr 2020 05:23:41 -0700 (PDT) X-Google-Smtp-Source: APiQypLv97S3QTtc69/UBkYBrZqVwZ+2PWe/2FLJ9CJ1Q7TyowWM9KWz71IZaZLTzseyizpXqIvx X-Received: by 2002:a17:906:400a:: with SMTP id v10mr24883886ejj.300.1587558221299; Wed, 22 Apr 2020 05:23:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587558221; cv=none; d=google.com; s=arc-20160816; b=pXP1zjFLdFcifJ9jtg3tQjzXSqfEFJYcah7w77qh74s0FRcEdg5Oe1IC/sGwQsmZAC U+WfRf0kJzH7I5HiQg0QaydifpAi8MSen9oG6wMVQgtPvW21UH1jBOmE9XZDl5Lf9VEc 2RqcvsC5AuAD4LemtfYUFXtFpVrxkd6CIzmlFNMvHIyRoSe0fC44tD4VVG/NBcVaKXQN LCQ+R4IbcjEnAJmAzvBMXd71htAQ9g4cNepoK4iegzxRlW3UhwNvye9kYa8b96Uattqy fiS6q+Obips6U6SYcaNhCv+qKjH98lxBLAUIr44RqHnQ4wmj3DVuTMHNK4A/3DGZMS9q zQDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=xMkvAH+lSzLCAcBF1yfH4zKTl75Ldhgu4rfkQ9cf+Xo=; b=NlHe7ntzEL7aApZK8aW26/Q0DTBwwnk904DJPXVsCv3q4EWmmJouFUgsYuKqBEPlpf DJSZD0/QWZynlD469WYnnbquDC8a1MzCNdaYFT3bS7mZcetxfvLy6YX4GORwSo34YXnr sBYsyPNdMWrPeiwpThuMu6a13mC6s9D0P27AnfLWU/rKCK4lf33EVciVH1g6cdv9pafv P1EnP+KydzP7TRZhUE4HKsy1pLaYnLeP4w8W6ilD6pGo0diyusDIjotp8UFdriScRlZa xfJ8GzhDVchx8I5c2o6b/kzYRg/cgM3u5tDzYKB1om512gHgnCrPIlxznrm5lA0IBQKc aqjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=iYfWvvUf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h4si3584000edn.445.2020.04.22.05.23.18; Wed, 22 Apr 2020 05:23:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=iYfWvvUf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732160AbgDVKwq (ORCPT + 99 others); Wed, 22 Apr 2020 06:52:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:36636 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728889AbgDVKJl (ORCPT ); Wed, 22 Apr 2020 06:09:41 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 800182071E; Wed, 22 Apr 2020 10:09:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587550180; bh=/3LBLbFaskxzFJjgyhptmFt7VqVQH1RAEmwmXCB/9dg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iYfWvvUfcd4lKaKFEOaL+BS1cf6CshRAOX2SYSYEDMQwq470HCK29PPRcorj42Gkx Vu+hZXgMk5cUwMYFYd+qOnXAX9LBbvLSn3LplHAzFya//DntjXnRmT9IT10VJgVd+4 gaak4HDxAPhIg1GK+Rpg6FDPJLBy2c8bedTctXIs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jaroslav Kysela , Takashi Iwai Subject: [PATCH 4.14 040/199] ALSA: hda: Fix potential access overflow in beep helper Date: Wed, 22 Apr 2020 11:56:06 +0200 Message-Id: <20200422095102.006731419@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200422095057.806111593@linuxfoundation.org> References: <20200422095057.806111593@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Takashi Iwai commit 0ad3f0b384d58f3bd1f4fb87d0af5b8f6866f41a upstream. The beep control helper function blindly stores the values in two stereo channels no matter whether the actual control is mono or stereo. This is practically harmless, but it annoys the recently introduced sanity check, resulting in an error when the checker is enabled. This patch corrects the behavior to store only on the defined array member. Fixes: 0401e8548eac ("ALSA: hda - Move beep helper functions to hda_beep.c") BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=207139 Reviewed-by: Jaroslav Kysela Cc: Link: https://lore.kernel.org/r/20200407084402.25589-2-tiwai@suse.de Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/pci/hda/hda_beep.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) --- a/sound/pci/hda/hda_beep.c +++ b/sound/pci/hda/hda_beep.c @@ -310,8 +310,12 @@ int snd_hda_mixer_amp_switch_get_beep(st { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct hda_beep *beep = codec->beep; + int chs = get_amp_channels(kcontrol); + if (beep && (!beep->enabled || !ctl_has_mute(kcontrol))) { - ucontrol->value.integer.value[0] = + if (chs & 1) + ucontrol->value.integer.value[0] = beep->enabled; + if (chs & 2) ucontrol->value.integer.value[1] = beep->enabled; return 0; }