From cd4827b3b6f2b8b47562e58c4dc8669a0976c282 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 21 Jul 2020 12:05:04 +0200 Subject: [PATCH] xwayland/xwm: don't insert surface in list on error In case wl_event_loop_add_timer errors out, don't insert the free'd wlr_xwayland_surface in the list. Closes: https://github.com/swaywm/wlroots/issues/1721 --- xwayland/xwm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xwayland/xwm.c b/xwayland/xwm.c index a3fb61b4..50a85985 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -141,7 +141,6 @@ static struct wlr_xwayland_surface *xwayland_surface_create( surface->width = width; surface->height = height; surface->override_redirect = override_redirect; - wl_list_insert(&xwm->surfaces, &surface->link); wl_list_init(&surface->children); wl_list_init(&surface->parent_link); wl_signal_init(&surface->events.destroy); @@ -182,6 +181,8 @@ static struct wlr_xwayland_surface *xwayland_surface_create( return NULL; } + wl_list_insert(&xwm->surfaces, &surface->link); + wlr_signal_emit_safe(&xwm->xwayland->events.new_surface, surface); return surface;