+ cls_objects = obj_desc->package.elements;
+
+ if (obj_desc->common.type == ACPI_TYPE_PACKAGE &&
+ obj_desc->package.count == 3 &&
+ cls_objects[0]->common.type == ACPI_TYPE_INTEGER &&
+ cls_objects[1]->common.type == ACPI_TYPE_INTEGER &&
+ cls_objects[2]->common.type == ACPI_TYPE_INTEGER) {
+
+ /* Allocate a buffer for the CLS */
+ cls = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_pnp_device_id) +
+ (acpi_size) 7);
I would like to see an error returned if an object or subobject is of the incorrect type.
Then, the caller knows not to attempt to look at it.