mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-13 14:14:37 +00:00
ALSA: hda - possible read past array alc88[02]_parse_auto_config()
The test of index `i' is after the read - too late - and unsafe: if snd_hda_get_connections() fails in the last iteration a read beyond the array is possible. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
4ac5598290
commit
71121d9fcc
1 changed files with 4 additions and 4 deletions
|
@ -4684,9 +4684,9 @@ static int alc880_parse_auto_config(struct hda_codec *codec)
|
||||||
spec->multiout.dig_out_nid = dig_nid;
|
spec->multiout.dig_out_nid = dig_nid;
|
||||||
else {
|
else {
|
||||||
spec->multiout.slave_dig_outs = spec->slave_dig_outs;
|
spec->multiout.slave_dig_outs = spec->slave_dig_outs;
|
||||||
spec->slave_dig_outs[i - 1] = dig_nid;
|
if (i >= ARRAY_SIZE(spec->slave_dig_outs) - 1)
|
||||||
if (i == ARRAY_SIZE(spec->slave_dig_outs) - 1)
|
|
||||||
break;
|
break;
|
||||||
|
spec->slave_dig_outs[i - 1] = dig_nid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (spec->autocfg.dig_in_pin)
|
if (spec->autocfg.dig_in_pin)
|
||||||
|
@ -9813,9 +9813,9 @@ static int alc882_parse_auto_config(struct hda_codec *codec)
|
||||||
spec->multiout.dig_out_nid = dig_nid;
|
spec->multiout.dig_out_nid = dig_nid;
|
||||||
else {
|
else {
|
||||||
spec->multiout.slave_dig_outs = spec->slave_dig_outs;
|
spec->multiout.slave_dig_outs = spec->slave_dig_outs;
|
||||||
spec->slave_dig_outs[i - 1] = dig_nid;
|
if (i >= ARRAY_SIZE(spec->slave_dig_outs) - 1)
|
||||||
if (i == ARRAY_SIZE(spec->slave_dig_outs) - 1)
|
|
||||||
break;
|
break;
|
||||||
|
spec->slave_dig_outs[i - 1] = dig_nid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (spec->autocfg.dig_in_pin)
|
if (spec->autocfg.dig_in_pin)
|
||||||
|
|
Loading…
Reference in a new issue