提交 d8841647 编写于 作者: B Bob Moore 提交者: Len Brown

ACPICA: Add error checks to prevent faults

Added additional error checking to prevent run-time faults.
Signed-off-by: NBob Moore <robert.moore@intel.com>
Signed-off-by: NAlexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: NLen Brown <len.brown@intel.com>
上级 98af37fb
...@@ -209,8 +209,16 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc, ...@@ -209,8 +209,16 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
object, level + 4, 0); object, level + 4, 0);
} }
} else if (source_desc->reference.node) { } else if (source_desc->reference.node) {
acpi_ex_do_debug_object((source_desc->reference.node)-> if (ACPI_GET_DESCRIPTOR_TYPE
object, level + 4, 0); (source_desc->reference.node) !=
ACPI_DESC_TYPE_NAMED) {
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
" %p - Not a valid namespace node\n"));
} else {
acpi_ex_do_debug_object((source_desc->reference.
node)->object,
level + 4, 0);
}
} }
break; break;
......
...@@ -180,6 +180,12 @@ acpi_size acpi_ns_get_pathname_length(struct acpi_namespace_node *node) ...@@ -180,6 +180,12 @@ acpi_size acpi_ns_get_pathname_length(struct acpi_namespace_node *node)
next_node = node; next_node = node;
while (next_node && (next_node != acpi_gbl_root_node)) { while (next_node && (next_node != acpi_gbl_root_node)) {
if (ACPI_GET_DESCRIPTOR_TYPE(next_node) != ACPI_DESC_TYPE_NAMED) {
ACPI_ERROR((AE_INFO,
"Invalid NS Node (%X) while traversing path",
next_node));
return 0;
}
size += ACPI_PATH_SEGMENT_LENGTH; size += ACPI_PATH_SEGMENT_LENGTH;
next_node = acpi_ns_get_parent_node(next_node); next_node = acpi_ns_get_parent_node(next_node);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册