mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-06 13:29:56 -05:00
alsa-mixer: Make sure that SND_MIXER_SCHN_UNKNOWN isn't used when indexing e->masks.
SND_MIXER_SCHN_UNKNOWN is defined as -1, so that's not a good array index...
This commit is contained in:
parent
5270785238
commit
44623a347d
1 changed files with 11 additions and 2 deletions
|
|
@ -1453,8 +1453,13 @@ static int element_probe(pa_alsa_element *e, snd_mixer_t *m) {
|
||||||
e->n_channels = 1;
|
e->n_channels = 1;
|
||||||
|
|
||||||
if (!e->override_map) {
|
if (!e->override_map) {
|
||||||
for (p = PA_CHANNEL_POSITION_FRONT_LEFT; p < PA_CHANNEL_POSITION_MAX; p++)
|
for (p = PA_CHANNEL_POSITION_FRONT_LEFT; p < PA_CHANNEL_POSITION_MAX; p++) {
|
||||||
|
if (alsa_channel_ids[p] == SND_MIXER_SCHN_UNKNOWN)
|
||||||
|
continue;
|
||||||
|
|
||||||
e->masks[alsa_channel_ids[p]][e->n_channels-1] = 0;
|
e->masks[alsa_channel_ids[p]][e->n_channels-1] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
e->masks[SND_MIXER_SCHN_MONO][e->n_channels-1] = PA_CHANNEL_POSITION_MASK_ALL;
|
e->masks[SND_MIXER_SCHN_MONO][e->n_channels-1] = PA_CHANNEL_POSITION_MASK_ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1510,11 +1515,15 @@ static int element_probe(pa_alsa_element *e, snd_mixer_t *m) {
|
||||||
}
|
}
|
||||||
|
|
||||||
e->merged_mask = 0;
|
e->merged_mask = 0;
|
||||||
for (p = PA_CHANNEL_POSITION_FRONT_LEFT; p < PA_CHANNEL_POSITION_MAX; p++)
|
for (p = PA_CHANNEL_POSITION_FRONT_LEFT; p < PA_CHANNEL_POSITION_MAX; p++) {
|
||||||
|
if (alsa_channel_ids[p] == SND_MIXER_SCHN_UNKNOWN)
|
||||||
|
continue;
|
||||||
|
|
||||||
e->merged_mask |= e->masks[alsa_channel_ids[p]][e->n_channels-1];
|
e->merged_mask |= e->masks[alsa_channel_ids[p]][e->n_channels-1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue