2019-11-04 16:26:43

by Jyri Sarha

[permalink] [raw]
Subject: [PATCH] reset: Free struct reset_control_array in reset_control_array_put()

Fix memory leak in devm_reset_control_array_get(). Free also the
struct reset_control_array pointer in reset_control_array_put() not
only the reset-controls stored in it.

Reported-by: Tomi Valkeinen <[email protected]>
Signed-off-by: Jyri Sarha <[email protected]>
---
drivers/reset/core.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/reset/core.c b/drivers/reset/core.c
index 213ff40dda11..85d9676ee969 100644
--- a/drivers/reset/core.c
+++ b/drivers/reset/core.c
@@ -748,6 +748,8 @@ static void reset_control_array_put(struct reset_control_array *resets)
for (i = 0; i < resets->num_rstcs; i++)
__reset_control_put_internal(resets->rstc[i]);
mutex_unlock(&reset_list_mutex);
+
+ kfree(resets);
}

/**
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki


2019-11-04 16:31:58

by Philipp Zabel

[permalink] [raw]
Subject: Re: [PATCH] reset: Free struct reset_control_array in reset_control_array_put()

Hi Jyri,

On Mon, 2019-11-04 at 18:24 +0200, Jyri Sarha wrote:
> Fix memory leak in devm_reset_control_array_get(). Free also the
> struct reset_control_array pointer in reset_control_array_put() not
> only the reset-controls stored in it.
>
> Reported-by: Tomi Valkeinen <[email protected]>
> Signed-off-by: Jyri Sarha <[email protected]>
> ---
> drivers/reset/core.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/reset/core.c b/drivers/reset/core.c
> index 213ff40dda11..85d9676ee969 100644
> --- a/drivers/reset/core.c
> +++ b/drivers/reset/core.c
> @@ -748,6 +748,8 @@ static void reset_control_array_put(struct reset_control_array *resets)
> for (i = 0; i < resets->num_rstcs; i++)
> __reset_control_put_internal(resets->rstc[i]);
> mutex_unlock(&reset_list_mutex);
> +
> + kfree(resets);
> }
>
> /**

Thank you, this just got fixed in 532f9cd6ee99 ("reset: Fix memory leak
in reset_control_array_put()").

regards
Philipp

2019-11-04 19:05:08

by Jyri Sarha

[permalink] [raw]
Subject: Re: [PATCH] reset: Free struct reset_control_array in reset_control_array_put()

On 04/11/2019 18:30, Philipp Zabel wrote:
> Hi Jyri,
>
> On Mon, 2019-11-04 at 18:24 +0200, Jyri Sarha wrote:
>> Fix memory leak in devm_reset_control_array_get(). Free also the
>> struct reset_control_array pointer in reset_control_array_put() not
>> only the reset-controls stored in it.
>>
>> Reported-by: Tomi Valkeinen <[email protected]>
>> Signed-off-by: Jyri Sarha <[email protected]>
>> ---
>> drivers/reset/core.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/reset/core.c b/drivers/reset/core.c
>> index 213ff40dda11..85d9676ee969 100644
>> --- a/drivers/reset/core.c
>> +++ b/drivers/reset/core.c
>> @@ -748,6 +748,8 @@ static void reset_control_array_put(struct reset_control_array *resets)
>> for (i = 0; i < resets->num_rstcs; i++)
>> __reset_control_put_internal(resets->rstc[i]);
>> mutex_unlock(&reset_list_mutex);
>> +
>> + kfree(resets);
>> }
>>
>> /**
>
> Thank you, this just got fixed in 532f9cd6ee99 ("reset: Fix memory leak
> in reset_control_array_put()").
>

Ok, sorry. I just checked the mainline, not the mailing lists etc.

Best regards,
Jyri


--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

2019-11-06 09:08:42

by Philipp Zabel

[permalink] [raw]
Subject: Re: [PATCH] reset: Free struct reset_control_array in reset_control_array_put()

On Mon, 2019-11-04 at 21:03 +0200, Jyri Sarha wrote:
> On 04/11/2019 18:30, Philipp Zabel wrote:
> > Hi Jyri,
> >
> > On Mon, 2019-11-04 at 18:24 +0200, Jyri Sarha wrote:
> > > Fix memory leak in devm_reset_control_array_get(). Free also the
> > > struct reset_control_array pointer in reset_control_array_put() not
> > > only the reset-controls stored in it.
> > >
> > > Reported-by: Tomi Valkeinen <[email protected]>
> > > Signed-off-by: Jyri Sarha <[email protected]>
> > > ---
> > > drivers/reset/core.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/reset/core.c b/drivers/reset/core.c
> > > index 213ff40dda11..85d9676ee969 100644
> > > --- a/drivers/reset/core.c
> > > +++ b/drivers/reset/core.c
> > > @@ -748,6 +748,8 @@ static void reset_control_array_put(struct reset_control_array *resets)
> > > for (i = 0; i < resets->num_rstcs; i++)
> > > __reset_control_put_internal(resets->rstc[i]);
> > > mutex_unlock(&reset_list_mutex);
> > > +
> > > + kfree(resets);
> > > }
> > >
> > > /**
> >
> > Thank you, this just got fixed in 532f9cd6ee99 ("reset: Fix memory leak
> > in reset_control_array_put()").
> >
>
> Ok, sorry. I just checked the mainline, not the mailing lists etc.

No worries, that's perfectly fine. Just letting you know why this patch
isn't picked up.

regards
Philipp