backend/wayland: fix wlr_wl_pointer use-after-free

This commit is contained in:
Simon Ser 2019-04-23 22:33:31 +03:00 committed by Drew DeVault
parent f42816ce3f
commit 933208837d

View file

@ -331,6 +331,11 @@ struct wlr_wl_pointer *pointer_get_wl(struct wlr_pointer *wlr_pointer) {
static void pointer_destroy(struct wlr_pointer *wlr_pointer) { static void pointer_destroy(struct wlr_pointer *wlr_pointer) {
struct wlr_wl_pointer *pointer = pointer_get_wl(wlr_pointer); struct wlr_wl_pointer *pointer = pointer_get_wl(wlr_pointer);
if (pointer->output->backend->current_pointer == pointer) {
pointer->output->backend->current_pointer = NULL;
}
wl_list_remove(&pointer->output_destroy.link); wl_list_remove(&pointer->output_destroy.link);
free(pointer); free(pointer);
} }