Răsfoiți Sursa

ACPICA: Fixed a couple memory leaks associated with "implicit return"

Fixed a couple memory leaks associated with "implicit return" objects
when the AML Interpreter slack mode is enabled.

http://www.acpica.org/bugzilla/show_bug.cgi?id=349

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>
Lin Ming 16 ani în urmă
părinte
comite
d8a0ec914a
2 a modificat fișierele cu 6 adăugiri și 1 ștergeri
  1. 3 0
      drivers/acpi/dispatcher/dsmethod.c
  2. 3 1
      drivers/acpi/parser/psparse.c

+ 3 - 0
drivers/acpi/dispatcher/dsmethod.c

@@ -103,6 +103,9 @@ acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state)
 						    NULL);
 		acpi_ex_enter_interpreter();
 	}
+
+	acpi_ds_clear_implicit_return(walk_state);
+
 #ifdef ACPI_DISASSEMBLER
 	if (ACPI_FAILURE(status)) {
 

+ 3 - 1
drivers/acpi/parser/psparse.c

@@ -635,10 +635,12 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
 					    ACPI_WALK_METHOD_RESTART;
 				}
 			} else {
-				/* On error, delete any return object */
+				/* On error, delete any return object or implicit return */
 
 				acpi_ut_remove_reference(previous_walk_state->
 							 return_desc);
+				acpi_ds_clear_implicit_return
+				    (previous_walk_state);
 			}
 		}