Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1632833ybz; Thu, 16 Apr 2020 12:39:01 -0700 (PDT) X-Google-Smtp-Source: APiQypIBALfSX3rolfegrkdOnnPvw/i+M+V3UWem9ngxiPCJFglG3Juq8Efkzy2RXGCz1uL+f/SM X-Received: by 2002:a50:fa49:: with SMTP id c9mr32697436edq.9.1587065941757; Thu, 16 Apr 2020 12:39:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587065941; cv=none; d=google.com; s=arc-20160816; b=ckz3+duyEAeiwrRhUNyQsRq78Bx/S0XnVJ08CLEyXuK+a45I51967q8nqP4Cf9QuO0 dLc7Yg6c3247cZm3veRTtc+58RUaX73V9Uo2imBIj8EYVHz2lq3s5amn+YFfiw50lbbs 9ReI710gRBcajUyKsZO5QTOFinsSmGyb/zu4pg9q5spyA06Ypoa11lj7irf/qqcgRugl FHumhJNZ52dLtb7p/fPvJIRSRCDtYt1NLVumpSC1i7EayFx/Lo6LzbrFdSOGJliIqU7I lYnfvsMHqspNAGLsiVGfyfuMwm/QX4A0H+8JUNh4Zq+kN6e2ro32Dy3A0wycLHsvwOGp VbKw== 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=95jAEx81uGPmjcQdQjUMqV4/minHioDzRTNzSg6iTJU=; b=uttdXmunHBxP2ljoRgjrFJheEtblpVoLgwwTx1pQf1uKzQ+mSqw4lUFTPVVzznlW9c PzH+VNuQdoEtQA24DwhpEakiLEFzzH0R7gOO2TAOHcgA927TYjE2jLIBWmruf69yvoz4 /XiRno2rUeSGUwIy7/C16FSkZ8byURF3kf30uXqwc6Ev8wdnnfJMcEevcdDxV3q93P3s KssB5G+eQXAuVAzZ8Uwaq+IyvNuDrMaaVZIAVqpBDb19kxCh7Y/w0nUZPpp+LPsDp2gm qDBDTmV89RHE/JGQjWMXByPLbyxbGvlb+JO/yIBuqwty9+IUjAUwIANHPKERiiqRX13c 34TQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=mQtGi7T+; 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 dg10si13655061edb.447.2020.04.16.12.38.38; Thu, 16 Apr 2020 12:39:01 -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=mQtGi7T+; 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 S2896203AbgDPNaS (ORCPT + 99 others); Thu, 16 Apr 2020 09:30:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:36456 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2895616AbgDPN1v (ORCPT ); Thu, 16 Apr 2020 09:27:51 -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 EA1E9206E9; Thu, 16 Apr 2020 13:27:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587043671; bh=SgUi9v3qfx+ZEKmvn57RABlzELq4LCU6Cuhf8IocIsA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mQtGi7T+SgKjOFhbSBv1Hfgn9QUELhfzwaYqRe5sRpez1KEGN1oRmXjVSQZnWinEz T7zxOCSzMwk49SIZdxJIFNn/xwG/2orkSpabjIfI2XHKZjiQeKFsiKxjcWWFG7TNSZ bcF5Waeog0Qcludl7d1TtdV3HgwxfKfbnJgqv41w= 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.19 052/146] ALSA: hda: Fix potential access overflow in beep helper Date: Thu, 16 Apr 2020 15:23:13 +0200 Message-Id: <20200416131249.996626507@linuxfoundation.org> X-Mailer: git-send-email 2.26.1 In-Reply-To: <20200416131242.353444678@linuxfoundation.org> References: <20200416131242.353444678@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 @@ -297,8 +297,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; }