ACPICA: Fix for possible error when packages/buffers are passed to methods externally
Fixed a problem where buffer and package objects passed as arguments to a control method via the external AcpiEvaluateObject interface could cause an AE_AML_INTERNAL exception depending on the order and type of operators executed by the target control method. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
a3df4dadd4
commit
24a3157a90
1 changed files with 8 additions and 0 deletions
|
@ -511,6 +511,10 @@ acpi_ut_copy_esimple_to_isimple(union acpi_object *external_object,
|
|||
external_object->buffer.length);
|
||||
|
||||
internal_object->buffer.length = external_object->buffer.length;
|
||||
|
||||
/* Mark buffer data valid */
|
||||
|
||||
internal_object->buffer.flags |= AOPOBJ_DATA_VALID;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
@ -586,6 +590,10 @@ acpi_ut_copy_epackage_to_ipackage(union acpi_object *external_object,
|
|||
}
|
||||
}
|
||||
|
||||
/* Mark package data valid */
|
||||
|
||||
package_object->package.flags |= AOPOBJ_DATA_VALID;
|
||||
|
||||
*internal_object = package_object;
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue