From ca19014af011f5a6433fb6763fa1350c03a77f65 Mon Sep 17 00:00:00 2001 From: JiDe Zhang Date: Fri, 8 Sep 2023 21:36:56 +0800 Subject: xwayland: fix double free wlr_xwayland_shell_v1 --- xwayland/shell.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'xwayland/shell.c') diff --git a/xwayland/shell.c b/xwayland/shell.c index 9c5a9d20..1f7e11af 100644 --- a/xwayland/shell.c +++ b/xwayland/shell.c @@ -179,6 +179,7 @@ struct wlr_xwayland_shell_v1 *wlr_xwayland_shell_v1_create( wl_list_init(&shell->surfaces); wl_signal_init(&shell->events.new_surface); + wl_signal_init(&shell->events.destroy); shell->display_destroy.notify = handle_display_destroy; wl_display_add_destroy_listener(display, &shell->display_destroy); @@ -193,6 +194,8 @@ void wlr_xwayland_shell_v1_destroy(struct wlr_xwayland_shell_v1 *shell) { return; } + wl_signal_emit_mutable(&shell->events.destroy, NULL); + struct wlr_xwayland_surface_v1 *xwl_surface, *tmp; wl_list_for_each_safe(xwl_surface, tmp, &shell->surfaces, link) { xwl_surface_destroy(xwl_surface); -- cgit v1.2.3