ACPICA: Load operator: re-instate most restrictions on incoming table signature
Now, only allow "SSDT" "OEM", and a null signature. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
8d86e5f914
commit
c8cefe307d
|
@ -126,12 +126,29 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Originally, we checked the table signature for "SSDT" or "PSDT" here.
|
* Validate the incoming table signature.
|
||||||
* Next, we added support for OEMx tables, signature "OEM".
|
*
|
||||||
* Valid tables were encountered with a null signature, so we've just
|
* 1) Originally, we checked the table signature for "SSDT" or "PSDT".
|
||||||
* given up on validating the signature, since it seems to be a waste
|
* 2) We added support for OEMx tables, signature "OEM".
|
||||||
* of code. The original code was removed (05/2008).
|
* 3) Valid tables were encountered with a null signature, so we just
|
||||||
|
* gave up on validating the signature, (05/2008).
|
||||||
|
* 4) We encountered non-AML tables such as the MADT, which caused
|
||||||
|
* interpreter errors and kernel faults. So now, we once again allow
|
||||||
|
* only "SSDT", "OEMx", and now, also a null signature. (05/2011).
|
||||||
*/
|
*/
|
||||||
|
if ((table_desc->pointer->signature[0] != 0x00) &&
|
||||||
|
(!ACPI_COMPARE_NAME(table_desc->pointer->signature, ACPI_SIG_SSDT))
|
||||||
|
&& (ACPI_STRNCMP(table_desc->pointer->signature, "OEM", 3))) {
|
||||||
|
ACPI_ERROR((AE_INFO,
|
||||||
|
"Table has invalid signature [%4.4s] (0x%8.8X), must be SSDT or OEMx",
|
||||||
|
acpi_ut_valid_acpi_name(*(u32 *)table_desc->
|
||||||
|
pointer->
|
||||||
|
signature) ? table_desc->
|
||||||
|
pointer->signature : "????",
|
||||||
|
*(u32 *)table_desc->pointer->signature));
|
||||||
|
|
||||||
|
return_ACPI_STATUS(AE_BAD_SIGNATURE);
|
||||||
|
}
|
||||||
|
|
||||||
(void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
|
(void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue