simon-git: putty (master): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Wed Feb 15 19:32:38 GMT 2017


TL;DR:
  2fb3e26 Fix multiple bugs in freeze/thaw of Windows handle-sockets.

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:           2017-02-15 19:32:38

commit 2fb3e26584315e1d962226de40686c4cd7530bb7
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=2fb3e26584315e1d962226de40686c4cd7530bb7;hp=24c9cfc800c5e81819d80fd3eda953f950e263d6
Author: Simon Tatham <anakin at pobox.com>
Date:   Wed Feb 15 19:19:38 2017 +0000

    Fix multiple bugs in freeze/thaw of Windows handle-sockets.
    
    Firstly, I had asserted that data would never arrive on a handle
    socket in state FREEZING, which is just an error, because FREEZING is
    precisely the state of not being quite frozen _yet_ because one last
    read is still expected to arrive from the winhandl.c reading subthread
    which it's too late to cancel. I meant to assert that it wasn't
    FROZEN.
    
    Secondly, when the handle socket was in state FREEZING, I failed to
    actually _set_ it to FROZEN.
    
    And thirdly, when the handle socket starts thawing again (i.e. there's
    now outgoing buffer space so we can start sending our backlogged
    data), I forgot to ever call bufchain_consume, so that the same block
    of data would get sent repeatedly.
    
    I can only assume that nothing I've ever done has actually exercised
    this code!

 windows/winhsock.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)



More information about the tartarus-commits mailing list