ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
Артемий Карасев
karasev at ispras.ru
Fri Feb 3 07:00:24 CET 2023
In snd_emux_control() method "snd_emux_port" can be passed with
field chset.midi_mode == SNDRV_MIDI_MODE_XG. The "type" can be
MIDI_CTL_PITCHBEND or MIDI_CTL_CHAN_PRESSURE.
It may lead to accessing 'control' array of size 128 with
MIDI_CTL_PITCHBEND (0x80) or MIDI_CTL_CHAN_PRESSURE (0x82) index.
How can we prevent this? Would it be a good solution to place code like this
before call snd_emux_xg_control()?
if (type == MIDI_CTL_PITCHBEND || type == MIDI_CTL_CHAN_PRESSURE){
return;
}
Found by Linux Verification Center (linuxtesting.org) with SVACE.
More information about the Alsa-devel
mailing list