Re: [PATCH] media: usb: fix memory leak in af9005_identify_state

From: Hans Verkuil
Date: Wed Oct 09 2019 - 08:42:10 EST


On 9/14/19 1:55 AM, Navid Emamdoost wrote:
> In af9005_identify_state when returning -EIO the allocated buffer should
> be released.
>
> Signed-off-by: Navid Emamdoost <navid.emamdoost@xxxxxxxxx>
> ---
> drivers/media/usb/dvb-usb/af9005.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/usb/dvb-usb/af9005.c b/drivers/media/usb/dvb-usb/af9005.c
> index 02697d86e8c1..aee500beaab6 100644
> --- a/drivers/media/usb/dvb-usb/af9005.c
> +++ b/drivers/media/usb/dvb-usb/af9005.c
> @@ -975,8 +975,10 @@ static int af9005_identify_state(struct usb_device *udev,
> *cold = 1;
> else if (reply == 0x02)
> *cold = 0;
> - else
> + else {
> + kfree(buf);
> return -EIO;
> + }

Why not just set ret = -EIO; here?

You only need to add a

if (!ret)
> deb_info("Identify state cold = %d\n", *cold);

before this line.

So this becomes:

else
ret = -EIO;
if (!ret)
deb_info("Identify state cold = %d\n", *cold);

Regards,

Hans

>
> err:
>