ACPICA: Fix possible memory leak for module-level code execution
authorLin Ming <ming.m.lin@intel.com>
Fri, 11 Dec 2009 06:36:47 +0000 (14:36 +0800)
committerLen Brown <len.brown@intel.com>
Tue, 15 Dec 2009 22:29:34 +0000 (17:29 -0500)
An object can be leaked for each block of executed module-level
code if the interpreter slack mode is enabled. The change deletes
any implicitly returned object in this case.

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/acpica/nseval.c

index f771e978c40396cc405e5484e29344dd5176d9f8..65e0d1a260ea9d0ba1d81de0ac59d5449b8999be 100644 (file)
@@ -415,6 +415,12 @@ acpi_ns_exec_module_code(union acpi_operand_object *method_obj,
        ACPI_DEBUG_PRINT((ACPI_DB_INIT, "Executed module-level code at %p\n",
                          method_obj->method.aml_start));
 
+       /* Delete a possible implicit return value (in slack mode) */
+
+       if (info->return_object) {
+               acpi_ut_remove_reference(info->return_object);
+       }
+
        /* Detach the temporary method object */
 
        acpi_ns_detach_object(parent_node);