aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/dev/acpica/components/executer/exoparg2.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2013-04-04 22:11:30 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2013-04-04 22:11:30 +0000
commit9c7c683c56f9d25aa7c25c40d530d7a153b19d18 (patch)
tree08c8e0bd494a9c0d0e58b8bd388950e26ee98ee0 /sys/contrib/dev/acpica/components/executer/exoparg2.c
parentdcdf6e7418cc054bd34c74bd307396a45e97daf4 (diff)
parent0ff2ef6cfe11e98b10c26dc8f1c359e6502538c8 (diff)
downloadsrc-9c7c683c56f9d25aa7c25c40d530d7a153b19d18.tar.gz
src-9c7c683c56f9d25aa7c25c40d530d7a153b19d18.zip
Merge ACPICA 20130328.
Notes
Notes: svn path=/head/; revision=249112
Diffstat (limited to 'sys/contrib/dev/acpica/components/executer/exoparg2.c')
-rw-r--r--sys/contrib/dev/acpica/components/executer/exoparg2.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/contrib/dev/acpica/components/executer/exoparg2.c b/sys/contrib/dev/acpica/components/executer/exoparg2.c
index 55defdcaf74a..aebc0d31b84c 100644
--- a/sys/contrib/dev/acpica/components/executer/exoparg2.c
+++ b/sys/contrib/dev/acpica/components/executer/exoparg2.c
@@ -286,7 +286,7 @@ AcpiExOpcode_2A_1T_1R (
ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
UINT64 Index;
ACPI_STATUS Status = AE_OK;
- ACPI_SIZE Length;
+ ACPI_SIZE Length = 0;
ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_1T_1R,
@@ -356,7 +356,6 @@ AcpiExOpcode_2A_1T_1R (
* NOTE: A length of zero is ok, and will create a zero-length, null
* terminated string.
*/
- Length = 0;
while ((Length < Operand[0]->Buffer.Length) &&
(Length < Operand[1]->Integer.Value) &&
(Operand[0]->Buffer.Pointer[Length]))
@@ -418,6 +417,7 @@ AcpiExOpcode_2A_1T_1R (
if (Index >= Operand[0]->String.Length)
{
+ Length = Operand[0]->String.Length;
Status = AE_AML_STRING_LIMIT;
}
@@ -428,6 +428,7 @@ AcpiExOpcode_2A_1T_1R (
if (Index >= Operand[0]->Buffer.Length)
{
+ Length = Operand[0]->Buffer.Length;
Status = AE_AML_BUFFER_LIMIT;
}
@@ -438,6 +439,7 @@ AcpiExOpcode_2A_1T_1R (
if (Index >= Operand[0]->Package.Count)
{
+ Length = Operand[0]->Package.Count;
Status = AE_AML_PACKAGE_LIMIT;
}
@@ -456,8 +458,8 @@ AcpiExOpcode_2A_1T_1R (
if (ACPI_FAILURE (Status))
{
ACPI_EXCEPTION ((AE_INFO, Status,
- "Index (0x%8.8X%8.8X) is beyond end of object",
- ACPI_FORMAT_UINT64 (Index)));
+ "Index (0x%X%8.8X) is beyond end of object (length 0x%X)",
+ ACPI_FORMAT_UINT64 (Index), (UINT32) Length));
goto Cleanup;
}