RE: [PATCH 3.7-rc8] ACPICA: Fix ACPI mutex object allocation memoryleak on error
From: Moore, Robert
Date: Wed Dec 05 2012 - 12:58:11 EST
Tim,
Thanks. We will need to backport this change to the ACPICA source code.
Bob
> -----Original Message-----
> From: Tim Gardner [mailto:tim.gardner@xxxxxxxxxxxxx]
> Sent: Wednesday, December 05, 2012 9:39 AM
> To: linux-kernel@xxxxxxxxxxxxxxx
> Cc: Tim Gardner; Len Brown; Rafael J. Wysocki; Lin Ming; Moore, Robert;
> linux-acpi@xxxxxxxxxxxxxxx
> Subject: [PATCH 3.7-rc8] ACPICA: Fix ACPI mutex object allocation memory
> leak on error
>
> An unattached mutex object is not released on error, thereby orphaning
> memory.
>
> I stumbled on this when looking at the output of smatch:
>
> drivers/acpi/acpica/dsmethod.c:225 acpi_ds_begin_method_execution() error:
> we previously assumed 'obj_desc->method.mutex' could be null (see line
> 209)
>
> which led me to have a look at acpi_ds_create_method_mutex().
>
> Cc: Len Brown <lenb@xxxxxxxxxx>
> Cc: "Rafael J. Wysocki" <rjw@xxxxxxx>
> Cc: Lin Ming <ming.m.lin@xxxxxxxxx>
> Cc: Bob Moore <robert.moore@xxxxxxxxx>
> Cc: linux-acpi@xxxxxxxxxxxxxxx
> Cc: stable@xxxxxxxxxxxxxxx #2.6.29+
> Signed-off-by: Tim Gardner <tim.gardner@xxxxxxxxxxxxx>
> ---
>
> This applied to the original version of dsmethod.c which was introduced in
> 95b482a8d31116f3f5c2a5089569393234d06385 (2.6.29).
>
> drivers/acpi/acpica/dsmethod.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/acpi/acpica/dsmethod.c
> b/drivers/acpi/acpica/dsmethod.c index aa9a5d4..fe89ea9 100644
> --- a/drivers/acpi/acpica/dsmethod.c
> +++ b/drivers/acpi/acpica/dsmethod.c
> @@ -151,6 +151,7 @@ acpi_ds_create_method_mutex(union acpi_operand_object
> *method_desc)
>
> status = acpi_os_create_mutex(&mutex_desc->mutex.os_mutex);
> if (ACPI_FAILURE(status)) {
> + acpi_ut_delete_object_desc(mutex_desc);
> return_ACPI_STATUS(status);
> }
>
> --
> 1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/