Skip to content

Commit

Permalink
Tools: Deallocate memory allocated by AcGetAllTablesFromFile via AcDe…
Browse files Browse the repository at this point in the history
…leteTableList

Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
  • Loading branch information
Erik Schmauss committed Jun 9, 2017
1 parent 5b16148 commit 8521b98
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 0 deletions.
30 changes: 30 additions & 0 deletions source/common/acfileio.c
Expand Up @@ -173,6 +173,36 @@ AcCheckTextModeCorruption (
ACPI_TABLE_HEADER *Table);


/*******************************************************************************
*
* FUNCTION: AcDeleteTableList
*
* PARAMETERS: ListHead - List to delete
*
* RETURN: Status
*
* DESCRIPTION: Delete a list of tables. This is useful for removing memory
* allocated by AcGetAllTablesFromFile
*
******************************************************************************/

void
AcDeleteTableList (
ACPI_NEW_TABLE_DESC *ListHead)
{
ACPI_NEW_TABLE_DESC *Current = ListHead;
ACPI_NEW_TABLE_DESC *Previous = Current;


while (Current)
{
Current = Current->Next;
AcpiOsFree (Previous);
Previous = Current;
}
}


/*******************************************************************************
*
* FUNCTION: AcGetAllTablesFromFile
Expand Down
6 changes: 6 additions & 0 deletions source/common/adisasm.c
Expand Up @@ -408,6 +408,8 @@ AdAmlDisassemble (
ACPI_FREE (Table);
}

AcDeleteTableList (ListHead);

if (File)
{
fclose (File);
Expand Down Expand Up @@ -748,6 +750,7 @@ AdDoExternalFileList (
continue;
}

AcDeleteTableList (ExternalListHead);
return (Status);
}

Expand All @@ -761,6 +764,7 @@ AdDoExternalFileList (
{
AcpiOsPrintf ("Could not parse external ACPI tables, %s\n",
AcpiFormatException (Status));
AcDeleteTableList (ExternalListHead);
return (Status);
}

Expand All @@ -780,6 +784,8 @@ AdDoExternalFileList (
ExternalFileList = ExternalFileList->Next;
}

AcDeleteTableList (ExternalListHead);

if (ACPI_FAILURE (GlobalStatus))
{
return (GlobalStatus);
Expand Down
4 changes: 4 additions & 0 deletions source/include/acapps.h
Expand Up @@ -226,6 +226,10 @@ AcGetAllTablesFromFile (
UINT8 GetOnlyAmlTables,
ACPI_NEW_TABLE_DESC **ReturnListHead);

void
AcDeleteTableList (
ACPI_NEW_TABLE_DESC *ListHead);

BOOLEAN
AcIsFileBinary (
FILE *File);
Expand Down
1 change: 1 addition & 0 deletions source/tools/acpiexec/aemain.c
Expand Up @@ -792,5 +792,6 @@ main (

ErrorExit:
(void) AcpiOsTerminate ();
AcDeleteTableList (ListHead);
return (ExitCode);
}
1 change: 1 addition & 0 deletions source/tools/acpinames/anmain.c
Expand Up @@ -409,5 +409,6 @@ AnDumpEntireNamespace (
Status = AcpiGetHandle (NULL, "\\_GPE", &Handle);
ACPI_CHECK_OK (AcpiGetHandle, Status);

AcDeleteTableList (ListHead);
return (0);
}

0 comments on commit 8521b98

Please sign in to comment.