mirror of
https://github.com/alsa-project/alsa-tools.git
synced 2025-10-31 22:25:34 -04:00
hdspmixer: Fix preset activation segfault on AES(32)
When selecting preset 6 or 7 on AES(32), hdspmixer has caused a segfault due to indirect out of bound access on the destination label array. The amount of destinations is the number of physical stereo pairs, so it's usually half the channel count, in some cases one more if there are additional headphone jacks. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
92e0a21b89
commit
2b10cb8be8
1 changed files with 4 additions and 3 deletions
|
|
@ -582,9 +582,9 @@ void HDSPMixerWindow::restoreDefaults(int card)
|
|||
chnls[0] = 16;
|
||||
chnls[1] = 16;
|
||||
chnls[2] = 16;
|
||||
maxdest[0] = 16;
|
||||
maxdest[1] = 16;
|
||||
maxdest[2] = 16;
|
||||
maxdest[0] = 8;
|
||||
maxdest[1] = 8;
|
||||
maxdest[2] = 8;
|
||||
num_modes = 3;
|
||||
break;
|
||||
case HDSPeAIO:
|
||||
|
|
@ -610,6 +610,7 @@ void HDSPMixerWindow::restoreDefaults(int card)
|
|||
/* should never happen */
|
||||
return;
|
||||
}
|
||||
|
||||
for (int preset = 0; preset < 8; ++preset) {
|
||||
for (int speed = 0; speed < num_modes; ++speed) {
|
||||
for (int i = 0; i < chnls[speed]; i+=2) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue