An upcoming Dell platform is causing a NULL pointer dereference
in dell-wmi-sysman initialization.  Validate that the input from
BIOS matches correct ACPI types and abort module initialization
if it fails.
Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
Tested-by: Perry Yuan <perry_yuan@dell.com>
Link: https://lore.kernel.org/r/20210129172654.2326751-1-mario.limonciello@dell.com
[hdegoede@redhat.com: Drop redundant release_attributes_data() call]
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 
                return retval;
        /* need to use specific instance_id and guid combination to get right data */
        obj = get_wmiobj_pointer(instance_id, guid);
-       if (!obj)
+       if (!obj || obj->type != ACPI_TYPE_PACKAGE)
                return -ENODEV;
        elements = obj->package.elements;
 
        mutex_lock(&wmi_priv.mutex);
        while (elements) {
                /* sanity checking */
+               if (elements[ATTR_NAME].type != ACPI_TYPE_STRING) {
+                       pr_debug("incorrect element type\n");
+                       goto nextobj;
+               }
                if (strlen(elements[ATTR_NAME].string.pointer) == 0) {
                        pr_debug("empty attribute found\n");
                        goto nextobj;