diff options
Diffstat (limited to 'source/common/acfileio.c')
-rw-r--r-- | source/common/acfileio.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/source/common/acfileio.c b/source/common/acfileio.c index 2c69c23991d6..589eaea26314 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -112,7 +112,8 @@ AcGetAllTablesFromFile ( FileSize = CmGetFileSize (File); if (FileSize == ACPI_UINT32_MAX) { - return (AE_ERROR); + Status = AE_ERROR; + goto ErrorExit; } fprintf (stderr, @@ -123,7 +124,8 @@ AcGetAllTablesFromFile ( if (FileSize < sizeof (ACPI_TABLE_HEADER)) { - return (AE_BAD_HEADER); + Status = AE_BAD_HEADER; + goto ErrorExit; } /* Check for an non-binary file */ @@ -156,7 +158,7 @@ AcGetAllTablesFromFile ( } else if (ACPI_FAILURE (Status)) { - return (Status); + goto ErrorExit; } /* Print table header for iASL/disassembler only */ @@ -203,6 +205,7 @@ AcGetAllTablesFromFile ( *ReturnListHead = ListHead; } +ErrorExit: fclose(File); return (Status); } @@ -409,7 +412,7 @@ AcValidateTableHeader ( /* Validate the signature (limited ASCII chars) */ - if (!AcpiIsValidSignature (TableHeader.Signature)) + if (!AcpiUtValidNameseg (TableHeader.Signature)) { fprintf (stderr, "Invalid table signature: 0x%8.8X\n", *ACPI_CAST_PTR (UINT32, TableHeader.Signature)); |