diff options
author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2020-04-08 15:50:49 -0700 |
---|---|---|
committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2020-04-08 15:50:49 -0700 |
commit | 3fb1cd9f78bc5e2d6f52d34a9a680713483fbb0b (patch) | |
tree | 6b65d985c1e100e6da147371d861a6f114a244ab /0002-ALSA-hda-Fix-potential-access-overflow-in-beep-helper.patch | |
parent | Updated to 5.6.2 (diff) | |
download | linux-3fb1cd9f78bc5e2d6f52d34a9a680713483fbb0b.tar.xz |
Updated to 5.6.3
Diffstat (limited to '0002-ALSA-hda-Fix-potential-access-overflow-in-beep-helper.patch')
-rw-r--r-- | 0002-ALSA-hda-Fix-potential-access-overflow-in-beep-helper.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/0002-ALSA-hda-Fix-potential-access-overflow-in-beep-helper.patch b/0002-ALSA-hda-Fix-potential-access-overflow-in-beep-helper.patch new file mode 100644 index 0000000..48dfbf5 --- /dev/null +++ b/0002-ALSA-hda-Fix-potential-access-overflow-in-beep-helper.patch @@ -0,0 +1,42 @@ +From 28a3a4bec629ccb9cef64c546998052e0806cb1b Mon Sep 17 00:00:00 2001 +From: Takashi Iwai <tiwai@suse.de> +Date: Tue, 7 Apr 2020 10:36:22 +0200 +Subject: ALSA: hda: Fix potential access overflow in beep helper + +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. + +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=207139 +Cc: <stable@vger.kernel.org> +Signed-off-by: Takashi Iwai <tiwai@suse.de> +--- + 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 f5fd62ed4df5..841523f6b88d 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; + } +-- +cgit v1.2.3-1-gf6bb5 + |