ASL Test Suite encounters the following type of error... Table [DSDT] is too long for file - needs: 0xCE4C0000, remaining in file: 0x4CCE when tests/aslts.sh was run on a big-endian system. diff --git a/source/common/acfileio.c b/source/common/acfileio.c index 589eaea..83e59e2 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -391,6 +391,7 @@ AcValidateTableHeader ( size_t Actual; long OriginalOffset; UINT32 FileSize; + UINT32 Length; UINT32 i; @@ -422,11 +423,12 @@ AcValidateTableHeader ( /* Validate table length against bytes remaining in the file */ FileSize = CmGetFileSize (File); - if (TableHeader.Length > (UINT32) (FileSize - TableOffset)) + ACPI_MOVE_32_TO_32(&Length, &TableHeader.Length); + if (Length > (UINT32) (FileSize - TableOffset)) { fprintf (stderr, "Table [%4.4s] is too long for file - " "needs: 0x%.2X, remaining in file: 0x%.2X\n", - TableHeader.Signature, TableHeader.Length, + TableHeader.Signature, Length, (UINT32) (FileSize - TableOffset)); return (AE_BAD_HEADER); }