ASoC: soc-compress.c: fix NULL dereference
authorQais Yousef <qais.yousef@imgtec.com>
Wed, 14 Jan 2015 08:47:29 +0000 (08:47 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 15 Jan 2015 15:54:04 +0000 (15:54 +0000)
commitd3268a40d4b19ff7bee23f52eabbc4e96bb685e8
treebc4e4def39a6e0ee15ac23cea0c91c78d3e47834
parent97bf6af1f928216fd6c5a66e8a57bfa95a659672
ASoC: soc-compress.c: fix NULL dereference

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: Qais Yousef <qais.yousef@imgtec.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
sound/soc/soc-compress.c