diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2014-05-06 09:20:05 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-05-07 07:27:29 +1000 |
commit | 13dea90bc8ef2a2e6f55fb5ff5f54afe41d22f95 (patch) | |
tree | 2edafe56a7be577702415b689d632d8f6bf7c6eb /src/evdev.h | |
parent | b25d71616557b0f3fc5e1ca65ba9e62809d14139 (diff) |
Use the server's device list for duplicate detection (#78309)
EvdevAddDevice/EvdevRemoveDevice keep a reference to the device to detect
duplicate devices based on the dev_t.
EvdevAddDevices was called during PreInit, EvdevRemoveDevice was called during
DEVICE_CLOSE. That makes it imbalanced if the device succeeds PreInit but the
server skips everything else because MAX_DEVICES is exceeded. So for all
devices after MAX_DEVICES, we'd add a reference but never remove it,
eventually reading/writing past evdev_devices.
The server keeps the list of devices for us anyway, so remove the copy of all
the pointers and instead run through the device list the server gives us.
X.Org Bug 78309 <http://bugs.freedesktop.org/show_bug.cgi?id=78309>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'src/evdev.h')
0 files changed, 0 insertions, 0 deletions