media: go7007: fix a miss of snd_card_free

Message ID 20191206120735.21873-1-hslester96@gmail.com (mailing list archive)
State Superseded, archived
Headers
Series media: go7007: fix a miss of snd_card_free |

Commit Message

Chuhong Yuan Dec. 6, 2019, 12:07 p.m. UTC
  go7007_snd_init() misses a snd_card_free() in an error path.
Add the missed call to fix it.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
---
 drivers/media/usb/go7007/snd-go7007.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Markus Elfring Dec. 6, 2019, 2:10 p.m. UTC | #1
> go7007_snd_init() misses a snd_card_free() in an error path.
> Add the missed call to fix it.

How do you think about to take another look also at the previous update suggestion
“[PATCH 5/6] [media] go7007: Use common error handling code in go7007_snd_init()”?
https://lore.kernel.org/linux-media/05efac78-3a14-803c-5b4a-68670728628b@users.sourceforge.net/
https://lore.kernel.org/patchwork/patch/831887/
https://lkml.org/lkml/2017/9/19/115

Regards,
Markus
  
Chuhong Yuan Dec. 6, 2019, 2:37 p.m. UTC | #2
On Fri, Dec 6, 2019 at 10:11 PM Markus Elfring <Markus.Elfring@web.de> wrote:
>
> > go7007_snd_init() misses a snd_card_free() in an error path.
> > Add the missed call to fix it.
>
> How do you think about to take another look also at the previous update suggestion
> “[PATCH 5/6] [media] go7007: Use common error handling code in go7007_snd_init()”?
> https://lore.kernel.org/linux-media/05efac78-3a14-803c-5b4a-68670728628b@users.sourceforge.net/
> https://lore.kernel.org/patchwork/patch/831887/
> https://lkml.org/lkml/2017/9/19/115
>

I think using goto is really much better than freeing after every error.
I will send a new version if others also agree with this pattern.

Regards,
Chuhong

> Regards,
> Markus
  
Markus Elfring Dec. 6, 2019, 5 p.m. UTC | #3
> I think using goto is really much better than freeing after every error.

Thanks for your positive feedback.


> I will send a new version if others also agree with this pattern.

* The error handling pattern would be supported by the Linux coding style.
  The agreement on corresponding changes can occasionally become more challenging.

* I would interpret Dan Carpenter's review comment (from 2017-09-19) in the way
  that he should be mentioned by the tag “Reported-by” in a subsequent patch.
  https://lkml.org/lkml/2017/9/19/115

Regards,
Markus
  

Patch

diff --git a/drivers/media/usb/go7007/snd-go7007.c b/drivers/media/usb/go7007/snd-go7007.c
index b05fa227ffb2..dced8c019514 100644
--- a/drivers/media/usb/go7007/snd-go7007.c
+++ b/drivers/media/usb/go7007/snd-go7007.c
@@ -243,6 +243,7 @@  int go7007_snd_init(struct go7007 *go)
 	ret = snd_device_new(gosnd->card, SNDRV_DEV_LOWLEVEL, go,
 			&go7007_snd_device_ops);
 	if (ret < 0) {
+		snd_card_free(gosnd->card);
 		kfree(gosnd);
 		return ret;
 	}