]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/input/evdev.c
Input: evdev - fix Ooops in EVIOCGABS/EVIOCSABS
[net-next-2.6.git] / drivers / input / evdev.c
index c908c5f83645c901f87823e2a587ba65d9b5ee97..afb64cf3748ddbcf60739d914136fbc153197de7 100644 (file)
@@ -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,