From 3417fc0cca8d392d0154012b3fd8149e71f25c6d Mon Sep 17 00:00:00 2001 From: Tudor Brindus Date: Fri, 29 Jan 2021 18:30:17 -0500 Subject: [PATCH] xwayland/selection: don't leak Wayland fd if ConvertSelection fails If our ConvertSelection failed, we would previously leak the pending Wayland client fd. Refs swaywm/sway#5946. --- xwayland/selection/incoming.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xwayland/selection/incoming.c b/xwayland/selection/incoming.c index c5aa783e..e41d1287 100644 --- a/xwayland/selection/incoming.c +++ b/xwayland/selection/incoming.c @@ -397,11 +397,14 @@ void xwm_handle_selection_notify(struct wlr_xwm *xwm, if (event->property == XCB_ATOM_NONE) { wlr_log(WLR_ERROR, "convert selection failed"); + xwm_selection_transfer_finish(&selection->incoming); } else if (event->target == xwm->atoms[TARGETS]) { // No xwayland surface focused, deny access to clipboard if (xwm->focus_surface == NULL) { wlr_log(WLR_DEBUG, "denying write access to clipboard: " "no xwayland surface focused"); + // Would leak this transfer otherwise. Should never happen. + assert(selection->incoming.wl_client_fd <= 0); return; }