On Jan 29 2017 01:08, Tanu Kaskinen wrote: > The pa_channel_map_init_extend() call later in the function crashes if > if ss->channels is greater than PA_CHANNELS_MAX. > > Reported here: > https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-January/027404.html > --- > src/modules/alsa/alsa-util.c | 7 +++++++ > 1 file changed, 7 insertions(+) Reviewed-by: Takashi Sakamoto <o-takashi at sakamocchi.jp> Tested-by: Takashi Sakamoto <o-takashi at sakamocchi.jp> I tested with a device which has 34ch capture and 30ch playback. PulseAudio adds a sink for the playback PCM substream with multichannel profile, and ignores the capture PCM substream. But I think there's a space to discuss this issue more. In this world, we have some devices with over-32ch, or users can add virtual sound card with over-32ch. Although such users seem to work without PulseAudio, it's better to drop this kind of restriction for better future of this sound server. > diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c > index 63d370f52..61fb4903c 100644 > --- a/src/modules/alsa/alsa-util.c > +++ b/src/modules/alsa/alsa-util.c > @@ -747,6 +747,13 @@ snd_pcm_t *pa_alsa_open_by_device_string( > goto fail; > } > > + if (ss->channels > PA_CHANNELS_MAX) { > + pa_log("Device %s has %u channels, but PulseAudio supports only %u channels. Unable to use the device.", > + d, ss->channels, PA_CHANNELS_MAX); > + snd_pcm_close(pcm_handle); > + goto fail; > + } > + > if (dev) > *dev = d; > else Regards Takashi Sakamoto