Commit b0579fc089808b68c53a6a95d043db034468116c

Authored by Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: evdev - fix EVIOCSABS regression
  Input: evdev - fix Ooops in EVIOCGABS/EVIOCSABS

Showing 1 changed file Side-by-side Diff

drivers/input/evdev.c
... ... @@ -669,6 +669,9 @@
669 669  
670 670 if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) {
671 671  
  672 + if (!dev->absinfo)
  673 + return -EINVAL;
  674 +
672 675 t = _IOC_NR(cmd) & ABS_MAX;
673 676 abs = dev->absinfo[t];
674 677  
675 678  
... ... @@ -680,9 +683,12 @@
680 683 }
681 684 }
682 685  
683   - if (_IOC_DIR(cmd) == _IOC_READ) {
  686 + if (_IOC_DIR(cmd) == _IOC_WRITE) {
684 687  
685 688 if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCSABS(0))) {
  689 +
  690 + if (!dev->absinfo)
  691 + return -EINVAL;
686 692  
687 693 t = _IOC_NR(cmd) & ABS_MAX;
688 694