summaryrefslogtreecommitdiff
path: root/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-07-10 17:08:55 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-07-10 17:08:55 +0300
commit81bd6aab35ad9ecce95dfe3e33c807effe370d83 (patch)
tree6c856cb948d3bc12246f696b209a410ae138d52f /drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
parenta681e6559ce6fe8ca56333f7041d0a0d38aaee94 (diff)
parent1562d948232546cfad45a1beddc70fe0c7b34950 (diff)
downloadlinux-rolling-stable.tar.xz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c')
-rw-r--r--drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
index 8cc212c85266..fc2f58b4cbc6 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
@@ -23,9 +23,10 @@ static ssize_t current_value_show(struct kobject *kobj, struct kobj_attribute *a
obj = get_wmiobj_pointer(instance_id, DELL_WMI_BIOS_ENUMERATION_ATTRIBUTE_GUID);
if (!obj)
return -EIO;
- if (obj->package.elements[CURRENT_VAL].type != ACPI_TYPE_STRING) {
+ if (obj->type != ACPI_TYPE_PACKAGE || obj->package.count < ENUM_MIN_ELEMENTS ||
+ obj->package.elements[CURRENT_VAL].type != ACPI_TYPE_STRING) {
kfree(obj);
- return -EINVAL;
+ return -EIO;
}
ret = snprintf(buf, PAGE_SIZE, "%s\n", obj->package.elements[CURRENT_VAL].string.pointer);
kfree(obj);