|
@@ -669,6 +669,9 @@ static long evdev_do_ioctl(struct file *file, unsigned int cmd,
|
|
|
|
|
|
if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) {
|
|
|
|
|
|
+ if (!dev->absinfo)
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
t = _IOC_NR(cmd) & ABS_MAX;
|
|
|
abs = dev->absinfo[t];
|
|
|
|
|
@@ -684,6 +687,9 @@ static long evdev_do_ioctl(struct file *file, unsigned int cmd,
|
|
|
|
|
|
if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCSABS(0))) {
|
|
|
|
|
|
+ if (!dev->absinfo)
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
t = _IOC_NR(cmd) & ABS_MAX;
|
|
|
|
|
|
if (copy_from_user(&abs, p, min_t(size_t,
|