simon-git: putty (master): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Sun Oct 7 21:25:29 BST 2018


TL;DR:
  2ea356c4 Fix crash on early connection of a sharing downstream.
  e3e43453 Fix crash when disconnecting in verstring phase.

Repository:     https://git.tartarus.org/simon/putty.git
On the web:     https://git.tartarus.org/?p=simon/putty.git
Branch updated: master
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2018-10-07 21:25:29

commit 2ea356c46c713566b077e659ee4f9a079997142c
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=2ea356c46c713566b077e659ee4f9a079997142c;hp=cea1329b9ea15f7856125bf170486cda6a85145d
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Oct 7 21:22:05 2018 +0100

    Fix crash on early connection of a sharing downstream.
    
    If you start up two sharing-enabled PuTTYs to the same host
    simultaneously, the one that ends up being the downstream can connect
    to the upstream before the upstream has provided a ConnectionLayer to
    the sharestate, which means that log_downstream() will dereference
    cs->parent->cl->frontend to find its Frontend and fail because cl is
    NULL.
    
    Fixed by providing a dummy initial ConnectionLayer containing nothing
    but a frontend pointer, which is then replaced by the real one later.

 ssh.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit e3e434537da5e0a42fed71b9c684f1f5176cb726
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=e3e434537da5e0a42fed71b9c684f1f5176cb726;hp=2ea356c46c713566b077e659ee4f9a079997142c
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Oct 7 20:37:30 2018 +0100

    Fix crash when disconnecting in verstring phase.
    
    If we disconnect because the two ends' SSH protocol versions don't
    match, ssh_initiate_connection_close triggers a call to the BPP's
    handle_output method, and sshverstring's one of those unconditionally
    fails an assertion on the basis that nobody should be trying to send
    SSH packets at that stage of the connection. In fact this call to
    handle_output is only precautionary, and it's unproblematic because
    there aren't any packets on the output queue. So the assertion is now
    conditional on there actually being an erroneous packet.

 sshverstring.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)



More information about the tartarus-commits mailing list