Github user necouchman commented on a diff in the pull request:
https://github.com/apache/incubator-guacamole-server/pull/118#discussion_r145862902
--- Diff: src/protocols/ssh/client.c ---
@@ -70,8 +70,14 @@ int guac_ssh_client_free_handler(guac_client* client) {
/* Free terminal (which may still be using term_channel) */
if (ssh_client->term != NULL) {
- guac_terminal_free(ssh_client->term);
+ /* Close user input pipe to stop reading in ssh_input_thread */
+ close(ssh_client->term->stdin_pipe_fd[1]);
+ close(ssh_client->term->stdin_pipe_fd[0]);
+ ssh_client->term->stdin_pipe_fd[1] = -1;
+ ssh_client->term->stdin_pipe_fd[0] = -1;
+
--- End diff --
No need to be sorry - I'm just trying to wrap my head around it, and I'm
much more familiar with the guacamole-client code than the server code.
Sometimes I need things explained in small words, repeatedly.
I'm curious what input Mike or Carl have on this - it still makes me a
little twitchy to modify these member fds directly in the ssh.c file, but it
could be that I'm just being unreasonable.
---