diff mbox

[1/4] ASoC: dapm: fix error path in snd_soc_dapm_new_pcm

Message ID 20170826082925.35472-1-yesanishhere@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Anish Kumar Aug. 26, 2017, 8:29 a.m. UTC
Before freeing the memory, check if it was allcoated.

Signed-off-by: anish kumar <yesanishhere@gmail.com>
---
 sound/soc/soc-dapm.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Mark Brown Aug. 27, 2017, 12:43 p.m. UTC | #1
On Sat, Aug 26, 2017 at 01:29:25AM -0700, anish kumar wrote:
> Before freeing the memory, check if it was allcoated.

> -outfree_w_param:
>  	for (count = 0 ; count < num_params; count++)
> -		devm_kfree(card->dev, (void *)w_param_text[count]);
> +            if (w_param_text[count])
> +	        devm_kfree(card->dev, (void *)w_param_text[count]);

There's no need to do this, devm_kfree() will handle null pointers fine.
Anish Kumar Sept. 2, 2017, 1:25 a.m. UTC | #2
> On Aug 27, 2017, at 5:43 AM, Mark Brown <broonie@kernel.org> wrote:

Thanks for reviewing.
> 
>> On Sat, Aug 26, 2017 at 01:29:25AM -0700, anish kumar wrote:
>> Before freeing the memory, check if it was allcoated.
> 
>> -outfree_w_param:
>>    for (count = 0 ; count < num_params; count++)
>> -        devm_kfree(card->dev, (void *)w_param_text[count]);
>> +            if (w_param_text[count])
>> +            devm_kfree(card->dev, (void *)w_param_text[count]);
> 
> There's no need to do this, devm_kfree() will handle null pointers fine.

Got it. I am waiting for comments on my other patches in this series before sending again.
diff mbox

Patch

diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index dcef67a..6e10a9a 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3907,9 +3907,10 @@  int snd_soc_dapm_new_pcm(struct snd_soc_card *card,
 	devm_kfree(card->dev, (void *)private_value);
 outfree_link_name:
 	devm_kfree(card->dev, link_name);
-outfree_w_param:
 	for (count = 0 ; count < num_params; count++)
-		devm_kfree(card->dev, (void *)w_param_text[count]);
+            if (w_param_text[count])
+	        devm_kfree(card->dev, (void *)w_param_text[count]);
+outfree_w_param:
 	devm_kfree(card->dev, w_param_text);
 
 	return ret;