diff options
author | Tony Crisci <tony@dubstepdish.com> | 2017-09-28 20:29:26 -0400 |
---|---|---|
committer | Tony Crisci <tony@dubstepdish.com> | 2017-09-28 20:29:26 -0400 |
commit | 0f56326cb82f8bfa22c653a7e6b57d51ad0c3c3d (patch) | |
tree | 4c44e17953cfd11abcef794caf7c6e4e54b7fc34 | |
parent | 033036712ade73a872f1034ddb47235be11a74aa (diff) |
fix libinput wlr-keyboard use after free
-rw-r--r-- | backend/libinput/keyboard.c | 1 | ||||
-rw-r--r-- | types/wlr_keyboard.c | 2 |
2 files changed, 1 insertions, 2 deletions
diff --git a/backend/libinput/keyboard.c b/backend/libinput/keyboard.c index 2a626148..53c3a61b 100644 --- a/backend/libinput/keyboard.c +++ b/backend/libinput/keyboard.c @@ -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_kb; libinput_device_unref(wlr_libinput_kb->libinput_dev); - free(wlr_libinput_kb); } struct wlr_keyboard_impl impl = { diff --git a/types/wlr_keyboard.c b/types/wlr_keyboard.c index dd90b38f..b356f63a 100644 --- a/types/wlr_keyboard.c +++ b/types/wlr_keyboard.c @@ -41,9 +41,9 @@ void wlr_keyboard_destroy(struct wlr_keyboard *kb) { kb->impl->destroy(kb); } else { wl_list_remove(&kb->events.key.listener_list); - free(kb); } close(kb->keymap_fd); + free(kb); } void wlr_keyboard_led_update(struct wlr_keyboard *kb, uint32_t leds) { |