[alsa-devel] [PATCH 2/2] ASoC: simple-card: test memory allocation

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Tue Mar 12 03:01:06 CET 2019


Hi Pierre

> >> diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
> >> index 08df261024cf..bed4fe5721a2 100644
> >> --- a/sound/soc/generic/simple-card.c
> >> +++ b/sound/soc/generic/simple-card.c
> >> @@ -715,7 +715,7 @@ static int simple_probe(struct platform_device *pdev)
> >>   	dai_link  = devm_kcalloc(dev, li.link, sizeof(*dai_link),  GFP_KERNEL);
> >>   	dais      = devm_kcalloc(dev, li.dais, sizeof(*dais),      GFP_KERNEL);
> >>   	cconf     = devm_kcalloc(dev, li.conf, sizeof(*cconf),     GFP_KERNEL);
> >> -	if (!dai_props || !dai_link || !dais)
> >> +	if (!dai_props || !dai_link || !dais || !cconf)
> >>   		return -ENOMEM;
> > 
> > It isn't mentioned on code, but, "li.conf" will be 0 if it was not DPCM case.
> > This means cconf NULL might be happen.
> 
> 
> Humm, then don't call devm_kcalloc with a zero argument...
> And if you keep this code, if li.conf is not zero you still have a
> risk of memory allocation failure. the test should be
> 
> +	if (!dai_props || !dai_link || !dais || (!cconf && li.conf))

Yes, indeed.
Thank you for your feedback

Actually, I have few cleanup patches for simple-card/audio-graph
for v5.2, then, your patch and it will be conflict.
If you are OK, I can merge your patch on my patch-set with your
Signed-off-by (or Reported-by).
Is OK for you ? I will post it when -rc1 was released from Linus.

Best regards
---
Kuninori Morimoto


More information about the Alsa-devel mailing list