simon-git: putty (master): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Sun Feb 17 20:32:31 GMT 2019


TL;DR:
  5bc6db4b Call ssh_check_frozen when BPP consumes input.
  5dadbdf5 ssh_sftp_do_select: don't fail if a callback is pending.

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-02-17 20:32:31

commit 5bc6db4b9651424600834503e0986e8943f6b9f9
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=5bc6db4b9651424600834503e0986e8943f6b9f9;hp=85550641d76f4f0d40bdf3656b7798296a6eca6c
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Feb 17 19:06:03 2019 +0000

    Call ssh_check_frozen when BPP consumes input.
    
    In commit 0f405ae8a, I arranged to stop reading from the SSH
    connection if the in_raw bufchain got too big. But in at least some
    tools (this bit me just now with PSCP), nothing actually calls
    ssh_check_frozen again when the bufchain clears, so it stays frozen.
    
    Now ssh_check_frozen is non-static, and all the BPP implementations
    call it whenever they consume data from ssh->in_raw.

 ssh.c          | 2 +-
 ssh.h          | 1 +
 ssh1bpp.c      | 1 +
 ssh2bpp-bare.c | 1 +
 ssh2bpp.c      | 1 +
 sshserver.c    | 1 +
 sshverstring.c | 4 ++++
 7 files changed, 10 insertions(+), 1 deletion(-)

commit 5dadbdf55657f9cc5e15e9fae5c30142b7fdbf45
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=5dadbdf55657f9cc5e15e9fae5c30142b7fdbf45;hp=5bc6db4b9651424600834503e0986e8943f6b9f9
Author: Simon Tatham <anakin at pobox.com>
Date:   Sun Feb 17 19:09:38 2019 +0000

    ssh_sftp_do_select: don't fail if a callback is pending.
    
    ssh_sftp_loop_iteration() used to return failure if no file handle was
    in use for the select loop, on the basis that that means select would
    just loop forever. But if there's a toplevel callback pending - in
    particular, if it's going to do something like emptying ssh->in_raw
    which will put an fd _back into_ the next iteration of the select loop
    - then that's not a good enough reason to return permanent failure.
    Just go round the loop, run the callback, and try again.

 unix/uxsftp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



More information about the tartarus-commits mailing list