[PATCH 1/2] ASoC: SOF: Prevent NULL dereference in sof_pcm_dai_link_fixup()

Ranjani Sridharan ranjani.sridharan at linux.intel.com
Fri Mar 18 17:14:55 CET 2022


On Fri, 2022-03-18 at 09:42 -0500, Pierre-Louis Bossart wrote:
> 
> On 3/18/22 02:12, Dan Carpenter wrote:
> > The "dia" pointer can be NULL, so handle that condition first
> > before
> > storing "dia->private".
> > 
> > Fixes: 839e484f9e17 ("ASoC: SOF: make struct snd_sof_dai IPC
> > agnostic")
> > Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
> 
> Thanks for the patch.
> 
> This part will be removed in follow-up patches, likely the reason
> why 
> this problem was missed.

Hi Dan/Pierre,

Both these problems are address in the series I posted yesterday.
Particularly patches 16 and 18.

Thanks,
Ranjani
> 
> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> 
> > ---
> >   sound/soc/sof/pcm.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
> > index 1661b0bc6f12..71f5bce0c4c7 100644
> > --- a/sound/soc/sof/pcm.c
> > +++ b/sound/soc/sof/pcm.c
> > @@ -702,7 +702,7 @@ int sof_pcm_dai_link_fixup(struct
> > snd_soc_pcm_runtime *rtd, struct snd_pcm_hw_pa
> >   	struct snd_sof_dai *dai =
> >   		snd_sof_find_dai(component, (char *)rtd->dai_link-
> > >name);
> >   	struct snd_sof_dev *sdev =
> > snd_soc_component_get_drvdata(component);
> > -	struct sof_dai_private_data *private = dai->private;
> > +	struct sof_dai_private_data *private;
> >   	struct snd_soc_dpcm *dpcm;
> >   
> >   	/* no topology exists for this BE, try a common configuration
> > */
> > @@ -727,6 +727,7 @@ int sof_pcm_dai_link_fixup(struct
> > snd_soc_pcm_runtime *rtd, struct snd_pcm_hw_pa
> >   	/* read format from topology */
> >   	snd_mask_none(fmt);
> >   
> > +	private = dai->private;
> >   	switch (private->comp_dai->config.frame_fmt) {
> >   	case SOF_IPC_FRAME_S16_LE:
> >   		snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE);



More information about the Alsa-devel mailing list