fix libinput wlr-keyboard use after free

This commit is contained in:
Tony Crisci 2017-09-28 20:29:26 -04:00
parent 033036712a
commit 0f56326cb8
2 changed files with 1 additions and 2 deletions

View File

@ -21,7 +21,6 @@ static void wlr_libinput_keyboard_destroy(struct wlr_keyboard *wlr_kb) {
struct wlr_libinput_keyboard *wlr_libinput_kb = struct wlr_libinput_keyboard *wlr_libinput_kb =
(struct wlr_libinput_keyboard *)wlr_kb; (struct wlr_libinput_keyboard *)wlr_kb;
libinput_device_unref(wlr_libinput_kb->libinput_dev); libinput_device_unref(wlr_libinput_kb->libinput_dev);
free(wlr_libinput_kb);
} }
struct wlr_keyboard_impl impl = { struct wlr_keyboard_impl impl = {

View File

@ -41,9 +41,9 @@ void wlr_keyboard_destroy(struct wlr_keyboard *kb) {
kb->impl->destroy(kb); kb->impl->destroy(kb);
} else { } else {
wl_list_remove(&kb->events.key.listener_list); wl_list_remove(&kb->events.key.listener_list);
free(kb);
} }
close(kb->keymap_fd); close(kb->keymap_fd);
free(kb);
} }
void wlr_keyboard_led_update(struct wlr_keyboard *kb, uint32_t leds) { void wlr_keyboard_led_update(struct wlr_keyboard *kb, uint32_t leds) {