[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAJZ5v0jQvu9hBY_yw2tVX26W=F=x_9em5LTQ2+JMe534Ay+UWg@mail.gmail.com>
Date: Tue, 2 Jul 2024 21:13:12 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: hongao <hongao@...ontech.com>
Cc: rafael@...nel.org, lenb@...nel.org, linux-acpi@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ACPI: button: call input_free_device when
input_register_device fails
On Thu, Jun 20, 2024 at 10:52 AM hongao <hongao@...ontech.com> wrote:
>
> Call input_free_device when input_register_device fails.
And this is in order to address a memory leak, isn't it?
> Signed-off-by: hongao <hongao@...ontech.com>
>
> diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
> index cc61020756be..8765e9a64404 100644
> --- a/drivers/acpi/button.c
> +++ b/drivers/acpi/button.c
> @@ -602,8 +602,10 @@ static int acpi_button_add(struct acpi_device *device)
>
> input_set_drvdata(input, device);
> error = input_register_device(input);
> - if (error)
> + if (error) {
> + input_free_device(input);
> goto err_remove_fs;
AFAICS, there is one other case in which something like this would
need to be done and it's better to rearrange the error handling to
cover all of these cases without duplicating input_free_device()
calls.
> + }
>
> switch (device->device_type) {
> case ACPI_BUS_TYPE_POWER_BUTTON:
>
> base-commit: e5b3efbe1ab1793bb49ae07d56d0973267e65112
> --
Powered by blists - more mailing lists