On Thu, Nov 09, 2023 at 09:50:34AM +0100, Florian Eckert wrote:
> The ttyname buffer for the ledtrig_tty_data struct is allocated in the
> sysfs ttyname_store() function. This buffer must be released on trigger
> deactivation. This was missing and is thus a memory leak.
>
> While we are at it, the tty handler in the ledtrig_tty_data struct should
> also be returned in case of the trigger deactivation call.
>
> Fixes: fd4a641ac88f ("leds: trigger: implement a tty trigger")
> Reviewed-by: Uwe Kleine-K?nig <[email protected]>
> Signed-off-by: Florian Eckert <[email protected]>
> ---
> drivers/leds/trigger/ledtrig-tty.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/leds/trigger/ledtrig-tty.c b/drivers/leds/trigger/ledtrig-tty.c
> index 8ae0d2d284af..3e69a7bde928 100644
> --- a/drivers/leds/trigger/ledtrig-tty.c
> +++ b/drivers/leds/trigger/ledtrig-tty.c
> @@ -168,6 +168,10 @@ static void ledtrig_tty_deactivate(struct led_classdev *led_cdev)
>
> cancel_delayed_work_sync(&trigger_data->dwork);
>
> + kfree(trigger_data->ttyname);
> + tty_kref_put(trigger_data->tty);
> + trigger_data->tty = NULL;
> +
This should be a stand-alone patch with a proper cc: stable tag added as
well so that it can be accepted now, as it is independent of this new
feature you are adding.
thanks,
greg k-h
On 2023-11-23 15:06, Greg KH wrote:
> On Thu, Nov 09, 2023 at 09:50:34AM +0100, Florian Eckert wrote:
>> The ttyname buffer for the ledtrig_tty_data struct is allocated in the
>> sysfs ttyname_store() function. This buffer must be released on
>> trigger
>> deactivation. This was missing and is thus a memory leak.
>>
>> While we are at it, the tty handler in the ledtrig_tty_data struct
>> should
>> also be returned in case of the trigger deactivation call.
>>
>> Fixes: fd4a641ac88f ("leds: trigger: implement a tty trigger")
>> Reviewed-by: Uwe Kleine-König <[email protected]>
>> Signed-off-by: Florian Eckert <[email protected]>
>> ---
>> drivers/leds/trigger/ledtrig-tty.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/leds/trigger/ledtrig-tty.c
>> b/drivers/leds/trigger/ledtrig-tty.c
>> index 8ae0d2d284af..3e69a7bde928 100644
>> --- a/drivers/leds/trigger/ledtrig-tty.c
>> +++ b/drivers/leds/trigger/ledtrig-tty.c
>> @@ -168,6 +168,10 @@ static void ledtrig_tty_deactivate(struct
>> led_classdev *led_cdev)
>>
>> cancel_delayed_work_sync(&trigger_data->dwork);
>>
>> + kfree(trigger_data->ttyname);
>> + tty_kref_put(trigger_data->tty);
>> + trigger_data->tty = NULL;
>> +
>
> This should be a stand-alone patch with a proper cc: stable tag added
> as
> well so that it can be accepted now, as it is independent of this new
> feature you are adding.
I already send this to [email protected] [1].
The patch already got an 'Reviewed-by:' from Uwe [2].
I hope I did everything right and it only slipped through?
I will omit the patch from the v9 patchset of 'ledtrig-tty'.
This patch set will come later today with your requested changes.
Links;
[1]
https://lore.kernel.org/stable/[email protected]/
[2]
https://lore.kernel.org/stable/[email protected]/
Best regards
Florian
On Mon, 27 Nov 2023, Florian Eckert wrote:
>
>
> On 2023-11-23 15:06, Greg KH wrote:
> > On Thu, Nov 09, 2023 at 09:50:34AM +0100, Florian Eckert wrote:
> > > The ttyname buffer for the ledtrig_tty_data struct is allocated in the
> > > sysfs ttyname_store() function. This buffer must be released on
> > > trigger
> > > deactivation. This was missing and is thus a memory leak.
> > >
> > > While we are at it, the tty handler in the ledtrig_tty_data struct
> > > should
> > > also be returned in case of the trigger deactivation call.
> > >
> > > Fixes: fd4a641ac88f ("leds: trigger: implement a tty trigger")
> > > Reviewed-by: Uwe Kleine-König <[email protected]>
> > > Signed-off-by: Florian Eckert <[email protected]>
> > > ---
> > > drivers/leds/trigger/ledtrig-tty.c | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/leds/trigger/ledtrig-tty.c
> > > b/drivers/leds/trigger/ledtrig-tty.c
> > > index 8ae0d2d284af..3e69a7bde928 100644
> > > --- a/drivers/leds/trigger/ledtrig-tty.c
> > > +++ b/drivers/leds/trigger/ledtrig-tty.c
> > > @@ -168,6 +168,10 @@ static void ledtrig_tty_deactivate(struct
> > > led_classdev *led_cdev)
> > >
> > > cancel_delayed_work_sync(&trigger_data->dwork);
> > >
> > > + kfree(trigger_data->ttyname);
> > > + tty_kref_put(trigger_data->tty);
> > > + trigger_data->tty = NULL;
> > > +
> >
> > This should be a stand-alone patch with a proper cc: stable tag added as
> > well so that it can be accepted now, as it is independent of this new
> > feature you are adding.
>
> I already send this to [email protected] [1].
> The patch already got an 'Reviewed-by:' from Uwe [2].
But then you posted this submission which superseded it in my inbox.
Only the latest patch will be processed when this happens.
> I hope I did everything right and it only slipped through?
>
> I will omit the patch from the v9 patchset of 'ledtrig-tty'.
> This patch set will come later today with your requested changes.
>
> Links;
> [1] https://lore.kernel.org/stable/[email protected]/
> [2] https://lore.kernel.org/stable/[email protected]/
>
> Best regards
>
> Florian
--
Lee Jones [李琼斯]
On 2023-11-27 09:04, Lee Jones wrote:
> On Mon, 27 Nov 2023, Florian Eckert wrote:
>
>>
>>
>> On 2023-11-23 15:06, Greg KH wrote:
>> > On Thu, Nov 09, 2023 at 09:50:34AM +0100, Florian Eckert wrote:
>> > > The ttyname buffer for the ledtrig_tty_data struct is allocated in the
>> > > sysfs ttyname_store() function. This buffer must be released on
>> > > trigger
>> > > deactivation. This was missing and is thus a memory leak.
>> > >
>> > > While we are at it, the tty handler in the ledtrig_tty_data struct
>> > > should
>> > > also be returned in case of the trigger deactivation call.
>> > >
>> > > Fixes: fd4a641ac88f ("leds: trigger: implement a tty trigger")
>> > > Reviewed-by: Uwe Kleine-König <[email protected]>
>> > > Signed-off-by: Florian Eckert <[email protected]>
>> > > ---
>> > > drivers/leds/trigger/ledtrig-tty.c | 4 ++++
>> > > 1 file changed, 4 insertions(+)
>> > >
>> > > diff --git a/drivers/leds/trigger/ledtrig-tty.c
>> > > b/drivers/leds/trigger/ledtrig-tty.c
>> > > index 8ae0d2d284af..3e69a7bde928 100644
>> > > --- a/drivers/leds/trigger/ledtrig-tty.c
>> > > +++ b/drivers/leds/trigger/ledtrig-tty.c
>> > > @@ -168,6 +168,10 @@ static void ledtrig_tty_deactivate(struct
>> > > led_classdev *led_cdev)
>> > >
>> > > cancel_delayed_work_sync(&trigger_data->dwork);
>> > >
>> > > + kfree(trigger_data->ttyname);
>> > > + tty_kref_put(trigger_data->tty);
>> > > + trigger_data->tty = NULL;
>> > > +
>> >
>> > This should be a stand-alone patch with a proper cc: stable tag added as
>> > well so that it can be accepted now, as it is independent of this new
>> > feature you are adding.
>>
>> I already send this to [email protected] [1].
>> The patch already got an 'Reviewed-by:' from Uwe [2].
>
> But then you posted this submission which superseded it in my inbox.
>
> Only the latest patch will be processed when this happens.
Thanks for the clarification, I wasn't aware of that.
>
>> I hope I did everything right and it only slipped through?
>>
>> I will omit the patch from the v9 patchset of 'ledtrig-tty'.
>> This patch set will come later today with your requested changes.
>>
>> Links;
>> [1]
>> https://lore.kernel.org/stable/[email protected]/
>> [2]
>> https://lore.kernel.org/stable/[email protected]/
>>
>> Best regards
>>
>> Florian