simon-git: putty (master): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Sun Mar 10 19:30:10 GMT 2019


TL;DR:
  e4e309e5 clear_line(): replace size check with a resize.
  a1ce240c ssh2bpp: try to report DISCONNECT before connection closure.
  58fd58d6 Fix crash if the SSH server disconnects.
  804ac213 Check the return value from ssh2_transport_filter_queue!

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:           2019-03-10 19:30:10

commit e4e309e5a4518779a1410e70763469b264eebed9
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=e4e309e5a4518779a1410e70763469b264eebed9;hp=5ca340cf1d5b30bbee44ac7907b9ca4b7e07b0c3
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Mar 10 18:31:46 2019 +0000

    clear_line(): replace size check with a resize.
    
    Turns out that my assertion that term->cols == line->cols can
    sometimes fail, because if the window is shrunk, scrlineptr()
    deliberately _doesn't_ shrink the line (so that the columns on the
    right can be recovered if the window is then resized larger again). So
    clear_line() should _make_ the line the right width, instead of
    asserting that it already is.

 terminal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a1ce240cfbdb72802ae523dd8e15fee99d4e1b90
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=a1ce240cfbdb72802ae523dd8e15fee99d4e1b90;hp=e4e309e5a4518779a1410e70763469b264eebed9
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Mar 10 19:24:01 2019 +0000

    ssh2bpp: try to report DISCONNECT before connection closure.
    
    There was a race between toplevel callbacks: if we read enough data to
    receive an SSH_MSG_DISCONNECT, and then returned, then whether we
    reported the DISCONNECT message or the followup EOF would depend on
    whether the BPP or the master PPL got called back first. Now the BPP
    politely waits its turn (i.e. waits to see if it even gets called back
    at all) before reporting EOF.

 ssh2bpp.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 58fd58d64ceaec2efbac5cd35164074d1ca883ae
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=58fd58d64ceaec2efbac5cd35164074d1ca883ae;hp=a1ce240cfbdb72802ae523dd8e15fee99d4e1b90
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Mar 10 17:21:30 2019 +0000

    Fix crash if the SSH server disconnects.
    
    When ssh_remote_error returns, the ssh2_transport_state has been
    freed, so we shouldn't try to reach into it to pop its in_pq.

 ssh2transport.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 804ac21381d6f7ef985b5d69686f496fb0e14ad5
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=804ac21381d6f7ef985b5d69686f496fb0e14ad5;hp=58fd58d64ceaec2efbac5cd35164074d1ca883ae
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Mar 10 19:25:21 2019 +0000

    Check the return value from ssh2_transport_filter_queue!
    
    I carefully made it return a bool to indicate that the whole PPL had
    been freed, and then never actually checked that return value, so any
    kind of connection-fatal event inside filter_queue (such as reporting
    a DISCONNECT message) would cause a reference to freed memory on
    return.

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



More information about the tartarus-commits mailing list