From 9cd22dc398ebe9fed80a4a4d48bee3467c2732ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 5 Nov 2019 08:40:39 +0100 Subject: [PATCH] selection: async send: handle POLLHUP --- selection.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/selection.c b/selection.c index 2bb9b22a..72ade90b 100644 --- a/selection.c +++ b/selection.c @@ -328,8 +328,10 @@ struct clipboard_send { static bool fdm_send(struct fdm *fdm, int fd, int events, void *data) { - struct clipboard_send *ctx = data; + if (events & EPOLLHUP) + goto done; + struct clipboard_send *ctx = data; switch (async_write(fd, ctx->data, ctx->len, &ctx->idx)) { case ASYNC_WRITE_REMAIN: @@ -345,6 +347,7 @@ fdm_send(struct fdm *fdm, int fd, int events, void *data) break; } +done: fdm_del(fdm, fd); free(ctx->data); free(ctx);