aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLin Ming <ming.m.lin@intel.com>2008-04-10 11:06:40 -0400
committerLen Brown <len.brown@intel.com>2008-04-22 14:29:26 -0400
commit49718b1741cb74d86eb8b1bd8f52ad6a013b40df (patch)
tree3aa0b922a31385983a3412a64fddb70d2e538442
parentfe4078af56a7b7f37391712cf188df3202b03776 (diff)
ACPICA: Added additional parameter validation for LoadTable
Implemented additional parameter validation for the LoadTable operator. The length of the input strings SignatureString, OemIdString, and OemTableId are now checked for maximum lengths. http://www.acpica.org/bugzilla/show_bug.cgi?id=582 Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/acpi/executer/exconfig.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/acpi/executer/exconfig.c b/drivers/acpi/executer/exconfig.c
index b9543a7f5d21..3370aad3ee14 100644
--- a/drivers/acpi/executer/exconfig.c
+++ b/drivers/acpi/executer/exconfig.c
@@ -138,6 +138,14 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
138 138
139 ACPI_FUNCTION_TRACE(ex_load_table_op); 139 ACPI_FUNCTION_TRACE(ex_load_table_op);
140 140
141 /* Validate lengths for the signature_string, OEMIDString, OEMtable_iD */
142
143 if ((operand[0]->string.length > ACPI_NAME_SIZE) ||
144 (operand[1]->string.length > ACPI_OEM_ID_SIZE) ||
145 (operand[2]->string.length > ACPI_OEM_TABLE_ID_SIZE)) {
146 return_ACPI_STATUS(AE_BAD_PARAMETER);
147 }
148
141 /* Find the ACPI table in the RSDT/XSDT */ 149 /* Find the ACPI table in the RSDT/XSDT */
142 150
143 status = acpi_tb_find_table(operand[0]->string.pointer, 151 status = acpi_tb_find_table(operand[0]->string.pointer,