Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1725181ybz; Sat, 18 Apr 2020 07:13:51 -0700 (PDT) X-Google-Smtp-Source: APiQypKS6eYYXjVKQBml6yDVFv0VQhjC4ni+4ZDRhJyMaoT6zxXAEZLPQABQkPlDVIq600YyVdKX X-Received: by 2002:a05:6402:3041:: with SMTP id bu1mr6594743edb.145.1587219231663; Sat, 18 Apr 2020 07:13:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587219231; cv=none; d=google.com; s=arc-20160816; b=bxeCT3qhzIUu/gnQNkQM5humKuCwCxF5Pt+tPXPTbfgeZHTTNYvW3PIQe+CRovbwMc pKyVLULWIL+pU/kT81xqp3epL4+Io4BphmHIAIMEAfmtOppT2HNQ0ZDupZcKnkyWdEIC Kfi1Bk4crSV0ntwPubhsCJQaW3oD2pnuK3AG89g8zUaJMvcjwJThCkhCQ7WrTibb6RmK D39yIj/gqBpCxCm9IwdcGGMkh9xkEcJiwDMa63p84m05tvDyHO2BKo+Z194TkwXaZ2px 4r6i58FgI8o6qAjnly03nWsFuSZaWxGN7GONoxMPNINfDHfW52CoOCEVpO9JEqmUKvxA nGcA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WiWypHS/+3Myk3nKJpWORBfYsewGB+EZb/zPoGJuxLQ=; b=zcjrnNi/hpGQZ9NaLpgs5gQZPnqVnfJk5sGhz8GufCdtqhM62/9t9OOmX8chYOf/QN YuWNmLOOVL9sBd6OoY/yhB+klGk4GlICkQa8xkjqeP1NtFj1aK37ZXyITHbYmUu3q27A v8h1C3MFYIN5W0RJLh9WY2RTGfVJtEoFhbpGGJxFqzxwlVnJoLz/Yn94ziHuZHJZ1yXA EtIhApVE/hSVs8k9YK6NxAKLkiFNQAJCqJEjTmzw/q5OabGSWTLjwLoZlhyR1QlSMUIR dPpVHEx/+5uCyWDxBqbth4GNuVY0eQvXgojT+l5KwGlocK9BQMxU8HYe8gYNVygYIcd1 wARQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=KhOgGSvH; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bi24si17252368edb.124.2020.04.18.07.13.28; Sat, 18 Apr 2020 07:13:51 -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=KhOgGSvH; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726189AbgDROLk (ORCPT + 99 others); Sat, 18 Apr 2020 10:11:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:38490 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727781AbgDROKY (ORCPT ); Sat, 18 Apr 2020 10:10:24 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 338C621D79; Sat, 18 Apr 2020 14:10:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587219023; bh=XlFxx7w9tq9hPc8Jl4nJlyASCZqXKW6voGb0AIZjCWM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KhOgGSvH7krzMQf71kTK7Uj1pOVT65WbBbI4t7rvY8YBu/VuQUHdC0jxFLFfXreyF meW/HzQCEfZnVQcgum+thUD5c+3oXPJjOmg5rawoAN3bf3USjBlfrrnS83xjXK6yed +DmvWZMrdmBmBUmIcmUD9C5jfcF1zgyTFRcMLTHw= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Takashi Iwai , Jaroslav Kysela , Sasha Levin , alsa-devel@alsa-project.org Subject: [PATCH AUTOSEL 5.5 59/75] ALSA: hda: Fix potential access overflow in beep helper Date: Sat, 18 Apr 2020 10:08:54 -0400 Message-Id: <20200418140910.8280-59-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200418140910.8280-1-sashal@kernel.org> References: <20200418140910.8280-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore 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 [ Upstream commit 0ad3f0b384d58f3bd1f4fb87d0af5b8f6866f41a ] 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: Sasha Levin --- sound/pci/hda/hda_beep.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c index b7d9160ed8688..c6e1e03a5e4da 100644 --- a/sound/pci/hda/hda_beep.c +++ b/sound/pci/hda/hda_beep.c @@ -290,8 +290,12 @@ int snd_hda_mixer_amp_switch_get_beep(struct snd_kcontrol *kcontrol, { 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; } -- 2.20.1