mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
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.
|
||||
* Next, we added support for OEMx tables, signature "OEM".
|
||||
* Valid tables were encountered with a null signature, so we've just
|
||||
* given up on validating the signature, since it seems to be a waste
|
||||
* of code. The original code was removed (05/2008).
|
||||
* Validate the incoming table signature.
|
||||
*
|
||||
* 1) Originally, we checked the table signature for "SSDT" or "PSDT".
|
||||
* 2) We added support for OEMx tables, signature "OEM".
|
||||
* 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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user