Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1395103ybz; Thu, 16 Apr 2020 08:25:25 -0700 (PDT) X-Google-Smtp-Source: APiQypIWGyKFiu2CJQFwObhT3f2/RDGi+XJGWR3pn00J+RYZ3E3aZJJ/lzXGwEPkzA2VDaaUUVXW X-Received: by 2002:a17:906:3b8b:: with SMTP id u11mr10214540ejf.352.1587050725142; Thu, 16 Apr 2020 08:25:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587050725; cv=none; d=google.com; s=arc-20160816; b=tsMbnHz2/N5+2UyCv69rrgaxukk1ZLdcDEuADWFFDbNdO0IMNLfrXGCYxQyJX1GOZE XmS1WAO5ZBgRixcA9nkTvY51wxLJpaT7ugmT0CRyIK+IrsJaMdiUeqmRK6Dl18MDmNfQ vCeesl75eLINQ9Z5veJyKB+ykG06E1emudzYQE1tYN8TMk+QKx0cwaSomJQZL79yKhyZ +EtWSjmh/bYx1D3upi+7TG4iY9Xwsa2i15lpx0G9parBXpONZPYNxAuZx0Qb8/TKk7xO pvw1ocUolm53EyN6diKurysBpuZvtduYOlVdHqz5PSig86rU2oiRIzewI7R4l1gFXnEZ Fdbw== 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=BsAXb/KZBQQRO3UgPDBvYQ8sOAa2xIBO+7vftFqyLCU=; b=MKNhxoQnfFcDLVtqWXsPlegaDYY+QODxgdAFcHad8Hbga/R2aTozbeMCYvs4wWv48T rBGyizs9judhp+mYuphazPbewWt3IdZL+u0CoJlFbqrC95HPipFvT+WRLNv1Cjr0OdX2 cXuvnH47rxvbGw7pTdqRc+8QHrcVzkrWYzRREl8tNpLFQLuCsQCbV5PdvWqXNW0MazJE RWEPBhvt7wqhRAE64jrdE01o9kqtgi9E6VAEsf+csmTz/2KJxBvwwMDyiARTHXaKCfMA PFKao2+/S9Hh05kDOO9fRZIf0dXUU3SflPelRiBrmRhHiS00qIGihJ8udTcwUaQ/KOIp mmvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=eUqSUmmJ; 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 p16si6208811ejz.195.2020.04.16.08.24.53; Thu, 16 Apr 2020 08:25:25 -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=eUqSUmmJ; 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 S2410037AbgDPPWu (ORCPT + 99 others); Thu, 16 Apr 2020 11:22:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:58974 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2898513AbgDPNpb (ORCPT ); Thu, 16 Apr 2020 09:45:31 -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 F059920732; Thu, 16 Apr 2020 13:45:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587044730; bh=Ccx5IMb0hrnaC5537dtoCxBIqyonxRrmjubp0SWGv5o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eUqSUmmJeVaTRLNrhEg3oUg7tv/E9M0zHPIkolqCkzTxQaE6PfEiYh5WFvwncCjis rMgGgkYf/iFsh8ITsYF74O/O+u6rrcHq9mINsLGHaqdfYoygEez27tPkWXPEdwATeB IJiA7d3hHUkWgPrqTVu4JCXRsJBq08Fw/SHgPlEM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jaroslav Kysela , Takashi Iwai Subject: [PATCH 5.4 077/232] ALSA: hda: Fix potential access overflow in beep helper Date: Thu, 16 Apr 2020 15:22:51 +0200 Message-Id: <20200416131324.835754846@linuxfoundation.org> X-Mailer: git-send-email 2.26.1 In-Reply-To: <20200416131316.640996080@linuxfoundation.org> References: <20200416131316.640996080@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 @@ -290,8 +290,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; }