summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai2009-07-19 13:52:31 +0200
committerTakashi Iwai2009-07-19 13:52:31 +0200
commit05e870d29aef0bf43124b2bd424103987fadd5b5 (patch)
treec16af622c5da784653a418cede6fa7b4b3357270 /sound
parentALSA: hda - Fix ALC268 parser for mono speaker (diff)
parentALSA: hda_codec: Check for invalid zero connections (diff)
downloadkernel-qcow2-linux-05e870d29aef0bf43124b2bd424103987fadd5b5.tar.gz
kernel-qcow2-linux-05e870d29aef0bf43124b2bd424103987fadd5b5.tar.xz
kernel-qcow2-linux-05e870d29aef0bf43124b2bd424103987fadd5b5.zip
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_codec.c6
-rw-r--r--sound/pci/hda/patch_realtek.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 35f0f223f85e..d686f4fcd780 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -347,6 +347,12 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid,
}
range_val = !!(parm & (1 << (shift-1))); /* ranges */
val = parm & mask;
+ if (val == 0) {
+ snd_printk(KERN_WARNING "hda_codec: "
+ "invalid CONNECT_LIST verb %x[%i]:%x\n",
+ nid, i, parm);
+ return 0;
+ }
parm >>= shift;
if (range_val) {
/* ranges between the previous and this one */
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 507a7720013e..454df58e983f 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4501,6 +4501,12 @@ static int alc880_parse_auto_config(struct hda_codec *codec)
&dig_nid, 1);
if (err < 0)
continue;
+ if (dig_nid > 0x7f) {
+ printk(KERN_ERR "alc880_auto: invalid dig_nid "
+ "connection 0x%x for NID 0x%x\n", dig_nid,
+ spec->autocfg.dig_out_pins[i]);
+ continue;
+ }
if (!i)
spec->multiout.dig_out_nid = dig_nid;
else {