Browse Source

Merge branch 'fix/hda' into topic/hda

Takashi Iwai 16 years ago
parent
commit
05e870d29a
2 changed files with 12 additions and 0 deletions
  1. 6 0
      sound/pci/hda/hda_codec.c
  2. 6 0
      sound/pci/hda/patch_realtek.c

+ 6 - 0
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 */

+ 6 - 0
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 {