[alsa-devel] [PATCH alsa-lib] pcm_dshare: Fix segfault when not binding channel 0

Takashi Iwai tiwai at suse.de
Wed Nov 21 11:02:12 CET 2018


On Tue, 20 Nov 2018 21:43:44 +0100,
Kirill Marinushkin wrote:
> 
> Configuration to reproduce:
> 
> ~~~~
> pcm.share_right {
>   type dshare
>   ipc_key 73
>   ipc_perm 0666
>   slave {
>     pcm "hw:0,0"
>   }
>   bindings {
>     # the seagfault happens when we don't bind channel 0
>     1 1
>   }
> }
> ~~~~
> 
> Execute to reproduce:
> 
> ~~~~
> $ aplay -D plug:share_right test.wav
> Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
> Segmentation fault
> ~~~~
> 
> For channels whithout binding, values are set to UINT_MAX in function
> `snd_pcm_direct_parse_bindings()`:
> 
> ~~~~
> 	for (chn = 0; chn < count; chn++)
> 		bindings[chn] = UINT_MAX;		/* don't route */
> ~~~~
> 
> But, these values are not checked when playing, which causes the segfault.
> 
> This commit fixes the issue.
> 
> Signed-off-by: Kirill Marinushkin <kmarinushkin at birdec.tech>

Applied, thanks.


Takashi


More information about the Alsa-devel mailing list