diff --git a/src/xf86libinput.c b/src/xf86libinput.c index 5727040..23dac8e 100644 --- a/src/xf86libinput.c +++ b/src/xf86libinput.c @@ -2208,8 +2208,12 @@ open_restricted(const char *path, int flags, void *data) InputInfoPtr pInfo; int fd = -1; - /* Special handling for sysfs files (used for pad LEDs) */ - if (strneq(path, "/sys/", 5)) { + /* Special handling for sysfs files (used for pad LEDs) + and for udev symlinks (by-id and by-path) + */ + if (strneq(path, "/sys/", 5) || + strneq(path, "/dev/input/by-id/", 17) || + strneq(path, "/dev/input/by-path/", 19)) { fd = open(path, flags); return fd < 0 ? -errno : fd; }