summaryrefslogtreecommitdiff
path: root/source/components/tables
diff options
context:
space:
mode:
authorLv Zheng <lv.zheng@intel.com>2014-01-07 16:03:18 +0800
committerLv Zheng <lv.zheng@intel.com>2014-03-19 10:37:20 +0800
commitb5aa7a5047957a16332823864b3bcca18e18ac43 (patch)
treef3a9929585b6fbd0cd3351bb30ce76da51044de6 /source/components/tables
parent2d5e8e5a6741993e6605752271bb768c83be3982 (diff)
downloadacpica-b5aa7a5047957a16332823864b3bcca18e18ac43.tar.gz
Tables: Fix the issue that table validations are not balanced.
As AcpiTbValidateTable() returns failure on checksum verification without doing invalidatation, all its invocations that are not done to a descriptor stored in AcpiGbl_RootTableList are checked and balanced. But this is not a real issue as the descritors that have been passed to AcpiTbAddTable() are all virtual address tables and the validations are in fact no-op. The cleanup can ensure that any future extensions made on AcpiTbAddTable() to allow it to be invoked with physical address tables will not trigger memory leakage regressions. Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Diffstat (limited to 'source/components/tables')
-rw-r--r--source/components/tables/tbinstal.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c
index 27a6b9051..9b55612f6 100644
--- a/source/components/tables/tbinstal.c
+++ b/source/components/tables/tbinstal.c
@@ -337,6 +337,7 @@ AcpiTbAddTable (
Status = AcpiTbValidateTable (TableDesc);
if (ACPI_FAILURE (Status) || !TableDesc->Pointer)
{
+ AcpiTbInvalidateTable (TableDesc);
return_ACPI_STATUS (Status);
}
}