Github user mike-jumper commented on a diff in the pull request:

    
https://github.com/apache/incubator-guacamole-server/pull/118#discussion_r145865862
  
    --- 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 --
    
    > .. it still makes me a little twitchy to modify these member fds directly 
in the ssh.c file ...
    
    This makes me twitchy, too. I'd much rather that the handling of file 
descriptor closure be encapsulated within the code that needs to know about it. 
I don't like the idea of requiring that all users of the terminal manually 
close the terminal's internal descriptors.


---

Reply via email to