diff options
Diffstat (limited to 'source/components/executer')
-rw-r--r-- | source/components/executer/exconfig.c | 9 | ||||
-rw-r--r-- | source/components/executer/exdump.c | 2 | ||||
-rw-r--r-- | source/components/executer/exresnte.c | 2 | ||||
-rw-r--r-- | source/components/executer/exresolv.c | 14 |
4 files changed, 13 insertions, 14 deletions
diff --git a/source/components/executer/exconfig.c b/source/components/executer/exconfig.c index 85389dde258b..361367d67914 100644 --- a/source/components/executer/exconfig.c +++ b/source/components/executer/exconfig.c @@ -178,15 +178,6 @@ AcpiExLoadTableOp ( ACPI_FUNCTION_TRACE (ExLoadTableOp); - /* Validate lengths for the Signature, OemId, and OemTableId strings */ - - if ((Operand[0]->String.Length > ACPI_NAME_SIZE) || - (Operand[1]->String.Length > ACPI_OEM_ID_SIZE) || - (Operand[2]->String.Length > ACPI_OEM_TABLE_ID_SIZE)) - { - return_ACPI_STATUS (AE_AML_STRING_LIMIT); - } - /* Find the ACPI table in the RSDT/XSDT */ Status = AcpiTbFindTable ( diff --git a/source/components/executer/exdump.c b/source/components/executer/exdump.c index 3142e62c088b..f64c6ff42612 100644 --- a/source/components/executer/exdump.c +++ b/source/components/executer/exdump.c @@ -1040,7 +1040,7 @@ AcpiExDumpReferenceObj ( AcpiOsPrintf (" %p ", ObjDesc->Reference.Node); Status = AcpiNsHandleToPathname (ObjDesc->Reference.Node, - &RetBuf, FALSE); + &RetBuf, TRUE); if (ACPI_FAILURE (Status)) { AcpiOsPrintf (" Could not convert name to pathname\n"); diff --git a/source/components/executer/exresnte.c b/source/components/executer/exresnte.c index 63b37b012bb6..0aa52629e85e 100644 --- a/source/components/executer/exresnte.c +++ b/source/components/executer/exresnte.c @@ -134,7 +134,7 @@ AcpiExResolveNodeToValue ( { ACPI_ERROR ((AE_INFO, "No object attached to node [%4.4s] %p", Node->Name.Ascii, Node)); - return_ACPI_STATUS (AE_AML_NO_OPERAND); + return_ACPI_STATUS (AE_AML_UNINITIALIZED_NODE); } /* diff --git a/source/components/executer/exresolv.c b/source/components/executer/exresolv.c index f97263c33f6c..868c90d07e5c 100644 --- a/source/components/executer/exresolv.c +++ b/source/components/executer/exresolv.c @@ -351,8 +351,8 @@ AcpiExResolveMultiple ( ACPI_OBJECT_TYPE *ReturnType, ACPI_OPERAND_OBJECT **ReturnDesc) { - ACPI_OPERAND_OBJECT *ObjDesc = (void *) Operand; - ACPI_NAMESPACE_NODE *Node; + ACPI_OPERAND_OBJECT *ObjDesc = ACPI_CAST_PTR (void, Operand); + ACPI_NAMESPACE_NODE *Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Operand); ACPI_OBJECT_TYPE Type; ACPI_STATUS Status; @@ -372,7 +372,7 @@ AcpiExResolveMultiple ( case ACPI_DESC_TYPE_NAMED: Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type; - ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc); + ObjDesc = AcpiNsGetAttachedObject (Node); /* If we had an Alias node, use the attached object for type info */ @@ -381,6 +381,14 @@ AcpiExResolveMultiple ( Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type; ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc); } + + if (!ObjDesc) + { + ACPI_ERROR ((AE_INFO, + "[%4.4s] Node is unresolved or uninitialized", + AcpiUtGetNodeName (Node))); + return_ACPI_STATUS (AE_AML_UNINITIALIZED_NODE); + } break; default: |