diff options
Diffstat (limited to 'source/components/utilities/utresrc.c')
-rw-r--r-- | source/components/utilities/utresrc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/components/utilities/utresrc.c b/source/components/utilities/utresrc.c index ed78a8489292..f3cd77cea578 100644 --- a/source/components/utilities/utresrc.c +++ b/source/components/utilities/utresrc.c @@ -526,6 +526,16 @@ AcpiUtWalkAmlResources ( return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG); } + /* + * The EndTag opcode must be followed by a zero byte. + * Although this byte is technically defined to be a checksum, + * in practice, all ASL compilers set this byte to zero. + */ + if (*(Aml + 1) != 0) + { + return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG); + } + /* Return the pointer to the EndTag if requested */ if (!UserFunction) |