• Q
    ASoC: soc-compress.c: fix NULL dereference · d3268a40
    Qais Yousef 提交于
    In soc_new_compress() when rtd->dai_link->dynamic is set, we create the pcm
    substreams with this call:
    
       ret = snd_pcm_new_internal(rtd->card->snd_card, new_name, num,
                                       1, 0, &be_pcm);
    
    which passes 0 as capture_count leading to
    
       be_pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream
    
    being NULL, hence when trying to set rtd a few lines below we get an oops.
    
    Fix by using rtd->dai_link->dpcm_playback and rtd->dai_link->dpcm_capture as
    playback_count and capture_count to snd_pcm_new_internal().
    Signed-off-by: NQais Yousef <qais.yousef@imgtec.com>
    Signed-off-by: NMark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    d3268a40
soc-compress.c 19.8 KB