Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 053ea640 authored by Pali Rohár's avatar Pali Rohár Committed by Guenter Roeck
Browse files

hwmon: (dell-smm) Fail in ioctl I8K_BIOS_VERSION when bios version is not a number



ABI of I8K_BIOS_VERSION ioctl can return only number. But new BIOS versions
contain also other characters, which does not fit into that ABI. So in case
of non digit values return -EINVAL.

Reported-by: default avatarMario Limonciello <Mario_Limonciello@dell.com>
Signed-off-by: default avatarPali Rohár <pali.rohar@gmail.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 5edb5649
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/sched.h>
#include <linux/ctype.h>

#include <linux/i8k.h>

@@ -387,6 +388,10 @@ i8k_ioctl_unlocked(struct file *fp, unsigned int cmd, unsigned long arg)

	switch (cmd) {
	case I8K_BIOS_VERSION:
		if (!isdigit(bios_version[0]) || !isdigit(bios_version[1]) ||
		    !isdigit(bios_version[2]))
			return -EINVAL;

		val = (bios_version[0] << 16) |
				(bios_version[1] << 8) | bios_version[2];
		break;