mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-01-03 11:40:22 +01:00
evdev: Initliaze device->link so we can wl_list_remove() without crashing
We were testing for wl_list_empty() on a { NULL, NULL } list (which
returns false) and then wl_list_remove()ing the device (which crashes).
This commit is contained in:
parent
146f5ba466
commit
4e55d067ea
1 changed files with 2 additions and 2 deletions
|
|
@ -602,6 +602,7 @@ evdev_device_create(struct weston_seat *seat, const char *path, int device_fd)
|
|||
device->rel.dy = 0;
|
||||
device->dispatch = NULL;
|
||||
device->fd = device_fd;
|
||||
wl_list_init(&device->link);
|
||||
|
||||
ioctl(device->fd, EVIOCGNAME(sizeof(devname)), devname);
|
||||
devname[sizeof(devname) - 1] = '\0';
|
||||
|
|
@ -645,8 +646,7 @@ evdev_device_destroy(struct evdev_device *device)
|
|||
|
||||
if (device->source)
|
||||
wl_event_source_remove(device->source);
|
||||
if (!wl_list_empty(&device->link))
|
||||
wl_list_remove(&device->link);
|
||||
wl_list_remove(&device->link);
|
||||
if (device->mtdev)
|
||||
mtdev_close_delete(device->mtdev);
|
||||
close(device->fd);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue