2012-11-20 16:09:46

by Jiri Kosina

[permalink] [raw]
Subject: [PATCH] HID: i2c-hid: fix memory leak during probe

In case we are returning from i2c_hid_probe() through the 'err' or
err_mem_free labels, there is noone freeing the buffers allocated by
i2c_hid_alloc_buffers().

Signed-off-by: Jiri Kosina <[email protected]>
---
drivers/hid/i2c-hid/i2c-hid.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
index 11140bd..67ab5b7 100644
--- a/drivers/hid/i2c-hid/i2c-hid.c
+++ b/drivers/hid/i2c-hid/i2c-hid.c
@@ -892,6 +892,7 @@ err:
if (ihid->irq)
free_irq(ihid->irq, ihid);

+ i2c_hid_free_buffers(ihid);
kfree(ihid);
return ret;
}

--
Jiri Kosina
SUSE Labs


2012-11-20 16:34:08

by Benjamin Tissoires

[permalink] [raw]
Subject: Re: [PATCH] HID: i2c-hid: fix memory leak during probe

On Tue, Nov 20, 2012 at 5:09 PM, Jiri Kosina <[email protected]> wrote:
> In case we are returning from i2c_hid_probe() through the 'err' or
> err_mem_free labels, there is noone freeing the buffers allocated by
> i2c_hid_alloc_buffers().

ouch... thanks Jiri
I hope there are not so much others like this one :)

Reviewed-by: Benjamin Tissoires <[email protected]>

>
> Signed-off-by: Jiri Kosina <[email protected]>
> ---
> drivers/hid/i2c-hid/i2c-hid.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
> index 11140bd..67ab5b7 100644
> --- a/drivers/hid/i2c-hid/i2c-hid.c
> +++ b/drivers/hid/i2c-hid/i2c-hid.c
> @@ -892,6 +892,7 @@ err:
> if (ihid->irq)
> free_irq(ihid->irq, ihid);
>
> + i2c_hid_free_buffers(ihid);
> kfree(ihid);
> return ret;
> }
>
> --
> Jiri Kosina
> SUSE Labs