simon-git: putty (master): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Tue Sep 25 17:24:23 BST 2018


TL;DR:
  e4ee11d4 Fix accidental termination of wait-for-rekey loop.
  da1e560b Fix failure to display the specials menu.

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-09-25 17:24:23

commit e4ee11d4c2258974a871c2e06fdf65f40b8a42eb
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=e4ee11d4c2258974a871c2e06fdf65f40b8a42eb;hp=f22d442003900ebed2d3322d4c258d73d5c6cc1c
Author: Simon Tatham <anakin at pobox.com>
Date:   Tue Sep 25 17:12:22 2018 +0100

    Fix accidental termination of wait-for-rekey loop.
    
    When I separated out the transport layer into its own source file, I
    also reworked the logic deciding when to rekey, and apparently that
    rework introduced a braino in which I compared rekey_reason (which is
    a pointer) to RK_NONE (which is a value of the enumerated type that
    lives in the similarly named variable rekey_class). Oops. The result
    was that after the first rekey, the loop would terminate the next time
    the transport coroutine got called, because the code just before the
    loop had zeroed out rekey_class but not rekey_reason. So there'd be a
    rekey on every keypress, or similar.

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

commit da1e560b42db03e6cf8bd49866975d63d4e9da84
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=da1e560b42db03e6cf8bd49866975d63d4e9da84;hp=e4ee11d4c2258974a871c2e06fdf65f40b8a42eb
Author: Simon Tatham <anakin at pobox.com>
Date:   Tue Sep 25 17:18:54 2018 +0100

    Fix failure to display the specials menu.
    
    I reworked the code for this at the last moment while preparing the
    Big Refactoring, having decided my previous design was overcomplicated
    and introducing an argument parameter (commit f4fbaa1bd) would be
    simpler.
    
    I carefully checked after the rework that specials manufactured by the
    code itself (e.g. SS_PING) came through OK, but apparently the one
    thing I _didn't_ test after the rework was that the specials list was
    actually returned correctly from ssh_get_specials to be incorporated
    into the GUI.
    
    In fact one stray if statement - both redundant even if it had been
    right, and also tested the wrong pointer - managed to arrange that
    when ssh->specials is NULL, it could never be overwritten by anything
    non-NULL. And of course it starts off initialised to NULL. Oops.

 ssh.c | 3 ---
 1 file changed, 3 deletions(-)



More information about the tartarus-commits mailing list