mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-07 13:30:03 -05:00
alsa-mixer: Make probing elements with more than two volume channels fail.
This is just a quick hack to prevent array overflow. Correct fix would be to implement support for more channels.
This commit is contained in:
parent
9501504859
commit
5270785238
1 changed files with 16 additions and 0 deletions
|
|
@ -1477,6 +1477,22 @@ static int element_probe(pa_alsa_element *e, snd_mixer_t *m) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (e->n_channels > 2) {
|
||||||
|
/* FIXME: In some places code like this is used:
|
||||||
|
*
|
||||||
|
* e->masks[alsa_channel_ids[p]][e->n_channels-1]
|
||||||
|
*
|
||||||
|
* The definition of e->masks is
|
||||||
|
*
|
||||||
|
* pa_channel_position_mask_t masks[SND_MIXER_SCHN_LAST][2];
|
||||||
|
*
|
||||||
|
* Since the array size is fixed at 2, we obviously
|
||||||
|
* don't support elements with more than two
|
||||||
|
* channels... */
|
||||||
|
pa_log_warn("Volume element %s has %u channels. That's too much! I can't handle that!", e->alsa_name, e->n_channels);
|
||||||
|
return -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++) {
|
||||||
pa_bool_t has_channel;
|
pa_bool_t has_channel;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue