From 74490b0b9415a4dfa98fabb5e611e0f20264718d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 29 Mar 2015 15:43:21 +0200 Subject: [PATCH] qrexec: try to recover from fork-server communication error Simply forget about that connection, instead of waiting for further messages. If that connection is no longer available, select would return EBADF, which would cause qrexec-agent termination. --- qrexec/qrexec-agent.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/qrexec/qrexec-agent.c b/qrexec/qrexec-agent.c index c29329e..09db699 100644 --- a/qrexec/qrexec-agent.c +++ b/qrexec/qrexec-agent.c @@ -427,6 +427,8 @@ void handle_terminated_fork_client(fd_set *rdset) { release_connection(i); } else { fprintf(stderr, "Unexpected read on fork-server connection: %d(%s)\n", ret, strerror(errno)); + close(connection_info[i].fd); + release_connection(i); } } }