diff options
| author | Bob Moore <robert.moore@intel.com> | 2008-06-10 02:29:26 -0400 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2008-06-11 19:13:47 -0400 |
| commit | 8410565f540db87ca938f56f92780d251e4f157d (patch) | |
| tree | 028c3900da5f1fe50e126bdc4b3c6aecd60fb110 /drivers/acpi/parser | |
| parent | d52c79ace60a2e2b22455fd195ff4bc8e7afa177 (diff) | |
ACPICA: Fix for access to deleted object <regression>
Fixes problem introduced in 20080123, with fix for Unload operator.
Parse tree object can be already deleted; must use the opcode
within the WalkState.
ACPI: kmemcheck: Caught 16-bit read from freed memory
http://bugzilla.kernel.org/show_bug.cgi?id=10669
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>
Diffstat (limited to 'drivers/acpi/parser')
| -rw-r--r-- | drivers/acpi/parser/psargs.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/acpi/parser/psargs.c b/drivers/acpi/parser/psargs.c index f1e8bf65e24..e9446377884 100644 --- a/drivers/acpi/parser/psargs.c +++ b/drivers/acpi/parser/psargs.c | |||
| @@ -268,7 +268,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state, | |||
| 268 | */ | 268 | */ |
| 269 | if (ACPI_SUCCESS(status) && | 269 | if (ACPI_SUCCESS(status) && |
| 270 | possible_method_call && (node->type == ACPI_TYPE_METHOD)) { | 270 | possible_method_call && (node->type == ACPI_TYPE_METHOD)) { |
| 271 | if (walk_state->op->common.aml_opcode == AML_UNLOAD_OP) { | 271 | if (walk_state->opcode == AML_UNLOAD_OP) { |
| 272 | /* | 272 | /* |
| 273 | * acpi_ps_get_next_namestring has increased the AML pointer, | 273 | * acpi_ps_get_next_namestring has increased the AML pointer, |
| 274 | * so we need to restore the saved AML pointer for method call. | 274 | * so we need to restore the saved AML pointer for method call. |
| @@ -691,7 +691,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state, | |||
| 691 | 691 | ||
| 692 | /* To support super_name arg of Unload */ | 692 | /* To support super_name arg of Unload */ |
| 693 | 693 | ||
| 694 | if (walk_state->op->common.aml_opcode == AML_UNLOAD_OP) { | 694 | if (walk_state->opcode == AML_UNLOAD_OP) { |
| 695 | status = | 695 | status = |
| 696 | acpi_ps_get_next_namepath(walk_state, | 696 | acpi_ps_get_next_namepath(walk_state, |
| 697 | parser_state, arg, | 697 | parser_state, arg, |
