Bläddra i källkod

ALSA: hda_codec: Check for invalid zero connections

To prevent "Too many connections" message and the error path for some HDMI
codecs (which makes onboard audio unusable), check for invalid zero
connections for CONNECT_LIST verb.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Jaroslav Kysela 16 år sedan
förälder
incheckning
2e9bf24706
1 ändrade filer med 6 tillägg och 0 borttagningar
  1. 6 0
      sound/pci/hda/hda_codec.c

+ 6 - 0
sound/pci/hda/hda_codec.c

@@ -332,6 +332,12 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid,
 						  AC_VERB_GET_CONNECT_LIST, i);
 						  AC_VERB_GET_CONNECT_LIST, i);
 		range_val = !!(parm & (1 << (shift-1))); /* ranges */
 		range_val = !!(parm & (1 << (shift-1))); /* ranges */
 		val = parm & mask;
 		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;
 		parm >>= shift;
 		if (range_val) {
 		if (range_val) {
 			/* ranges between the previous and this one */
 			/* ranges between the previous and this one */