summaryrefslogtreecommitdiff
path: root/x11/libinput/files/patch-src_evdev.c
diff options
context:
space:
mode:
authorNiclas Zeising <zeising@FreeBSD.org>2019-01-05 19:38:52 +0000
committerNiclas Zeising <zeising@FreeBSD.org>2019-01-05 19:38:52 +0000
commitc156d2a8f666fc2e85688c7db976290fbb1a2c09 (patch)
treed681ee30b9a908a26cf45d71b13b80da45d02cce /x11/libinput/files/patch-src_evdev.c
parentFix installation/packaging with DEFAULT_VERSIONS=python=3.x (diff)
x11/libinput: Fix crash when listing devices
Fix a crash in x11/libinput when listing devices with libinput list-devices. This is done by removing an old patch previously used to work arond permission issues with /dev/input/* PR: 234638 Reported by: Jan Beich Fix from: Greg V Reviewed by: Greg V MFH: 2019Q1
Notes
Notes: svn path=/head/; revision=489372
Diffstat (limited to 'x11/libinput/files/patch-src_evdev.c')
-rw-r--r--x11/libinput/files/patch-src_evdev.c50
1 files changed, 0 insertions, 50 deletions
diff --git a/x11/libinput/files/patch-src_evdev.c b/x11/libinput/files/patch-src_evdev.c
index 79386c458c9e..93d4b3644f63 100644
--- a/x11/libinput/files/patch-src_evdev.c
+++ b/x11/libinput/files/patch-src_evdev.c
@@ -35,53 +35,3 @@ so we just use them instead of the original (enumerated) ones.
device->source = NULL;
}
}
-@@ -1785,9 +1796,9 @@ evdev_notify_added_device(struct evdev_device *device)
- }
-
- static bool
--evdev_device_have_same_syspath(struct udev_device *udev_device, int fd)
-+evdev_device_have_same_syspath(struct udev_device **udev_device, int fd, bool reopen)
- {
-- struct udev *udev = udev_device_get_udev(udev_device);
-+ struct udev *udev = udev_device_get_udev(*udev_device);
- struct udev_device *udev_device_new = NULL;
- struct stat st;
- bool rc = false;
-@@ -1800,10 +1811,16 @@ evdev_device_have_same_syspath(struct udev_device *ude
- goto out;
-
- rc = streq(udev_device_get_syspath(udev_device_new),
-- udev_device_get_syspath(udev_device));
-+ udev_device_get_syspath(*udev_device));
- out:
-- if (udev_device_new)
-- udev_device_unref(udev_device_new);
-+ if (udev_device_new) {
-+ if (reopen) {
-+ udev_device_unref(*udev_device);
-+ *udev_device = udev_device_new;
-+ } else {
-+ udev_device_unref(udev_device_new);
-+ }
-+ }
- return rc;
- }
-
-@@ -2003,7 +2020,7 @@ evdev_device_create(struct libinput_seat *seat,
- return NULL;
- }
-
-- if (!evdev_device_have_same_syspath(udev_device, fd))
-+ if (!evdev_device_have_same_syspath(&udev_device, fd, true))
- goto err;
-
- device = zalloc(sizeof *device);
-@@ -2559,7 +2576,7 @@ evdev_device_resume(struct evdev_device *device)
- if (fd < 0)
- return -errno;
-
-- if (!evdev_device_have_same_syspath(device->udev_device, fd)) {
-+ if (!evdev_device_have_same_syspath(&device->udev_device, fd, false)) {
- close_restricted(libinput, fd);
- return -ENODEV;
- }