Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp668341ybz; Wed, 22 Apr 2020 05:53:25 -0700 (PDT) X-Google-Smtp-Source: APiQypKijm/ULlgtxuUbLZL3s+LzmIPVEpqqXCTIPqjGeLNQL/+CvVQHkYNt8te5pHV35Wv4WLcu X-Received: by 2002:a17:906:11c9:: with SMTP id o9mr26682469eja.64.1587560004862; Wed, 22 Apr 2020 05:53:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587560004; cv=none; d=google.com; s=arc-20160816; b=tLTd6mYuzHTVdsuWxakjUjWOslszpSLgcUA+7VDoR+KHQpWXUUlcV4IgPRLFfcum8W 8E2qK0eFgzKL4JgKDwxwivu9GMNDe2RxKBdwGOpLJdh66K8Gy9MJTxMR/VZ722Xlt1aZ qpVxM1Bjdo5EsH7KGLeUm7lepdo5cOlUTnPQyx6bt9tvZ3AQlzVFT9cD4oyakU1CJUYf 9SmPFTTpQ1nwJv+QKoGA4BZ55eI/RDpgKD2Yz83QkNgpi/U8zqH8q+RJG1jn1fVgWsqq UsMAzTekVjr9N3912+2WfFR00fY7ZwsTCeijnhvFIQ01mwslzx8Mex9i2RUJ9pDWGq2Y 3+NQ== 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=ghJ0q4aoUfcddpGz1wq2PWWFYWQygvgcROxEReIKWo6eVCVQ5j+bYd1TkXs1jKN+NQ 7bOtxk60zdvkakiiKpEnoDb4eV/HPxtFlB6P2wCjS9foSUgyepWeNjUPsXyyt2pYYh/K PU7lGb3M1jzYgPX7cf+fpHG4wanWFk6xPFo8k16w13PetK3vICtATzQtPGI6pHlvUTEE D/4BhIxmD01RCvoblsQ5n6pIfobQn/NEIRRJtSG/aLktxgbxgUxwGqMGMdZAfAdF5u2r 2RqO1EaosKATEK7EljngoZCJBTglVBKeylPQHuEDOAQU+q6qBB5zEEBa+eSbxUa5oWq9 x+DA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=RyULcM7u; 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 v16si2294610eda.515.2020.04.22.05.53.02; Wed, 22 Apr 2020 05:53:24 -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=RyULcM7u; 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 S1728460AbgDVLBR (ORCPT + 99 others); Wed, 22 Apr 2020 07:01:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:49790 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726801AbgDVKBW (ORCPT ); Wed, 22 Apr 2020 06:01:22 -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 79EB92076C; Wed, 22 Apr 2020 10:01:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587549681; bh=/3LBLbFaskxzFJjgyhptmFt7VqVQH1RAEmwmXCB/9dg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RyULcM7umYbVo+UputciKW3darAvMwzr2tYvFfWRJeIKDUwdjj6rqSF7X2VgsYCKI 2Yv12Hjm0uF4KyP1k27cZIPcs0ltCca/E3sWGneU6yvfQOddnGE1tvOk/5kl+Fq0JL HfEyDH3W07PEVmqqEiLVnMLMOsWjlkwOsCn8+PL8= 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.4 022/100] ALSA: hda: Fix potential access overflow in beep helper Date: Wed, 22 Apr 2020 11:55:52 +0200 Message-Id: <20200422095026.825310678@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200422095022.476101261@linuxfoundation.org> References: <20200422095022.476101261@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; }