simon-git: putty (master): Simon Tatham
Commits to Tartarus hosted VCS
tartarus-commits at lists.tartarus.org
Thu Dec 6 18:49:33 GMT 2018
TL;DR:
6002b272 Retain permitted methods list in userauth layer state.
c99d37a7 Avoid hanging on GSSAPI acquire_cred failure.
2cdff46d Remove the old in_commasep_string system.
50b94484 Makefile.clangcl: move $(CCTARGET) out of $(CC).
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-12-06 18:49:33
commit 6002b272f4c89db7f0d10678d6ba6d84bd9a8f40
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=6002b272f4c89db7f0d10678d6ba6d84bd9a8f40;hp=66b776ae6e177049486676b404b7ffdae3756768
Author: Simon Tatham <anakin at pobox.com>
Date: Thu Dec 6 18:06:15 2018 +0000
Retain permitted methods list in userauth layer state.
There are situations - or _should_ be, at any rate - in which we
terminate a userauth attempt without having received a
USERAUTH_FAILURE from the server, which means that we can't depend on
always starting a userauth loop iteration by extracting the server's
list of permitted methods from the current failure message. If there
isn't a current failure message, the best we can do is remember the
state from last time.
That's already what we do for actually deciding which methods to
attempt (we set s->can_foo from the methods string). But we should
also keep the full original version of the string, for use in error
message.
ssh2userauth.c | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
commit c99d37a7febb1bf6fc3785edfa4a386df0f2c0b2
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=c99d37a7febb1bf6fc3785edfa4a386df0f2c0b2;hp=6002b272f4c89db7f0d10678d6ba6d84bd9a8f40
Author: Simon Tatham <anakin at pobox.com>
Date: Thu Dec 6 18:08:56 2018 +0000
Avoid hanging on GSSAPI acquire_cred failure.
If GSSAPI authentication fails because we call the GSS acquire_cred
function on the client side and find it doesn't give us anything
useful, then that authentication attempt has to terminate - but since
_we_ decided to terminate it, on the client side, the server will be
sending us neither a formal USERAUTH_FAILURE nor any other kind of
packet.
So when we go back round to the top of the auth loop, we have to avoid
_either_ assuming we're sitting on a USERAUTH_FAILURE we can parse for
its method list, _or_ waiting to receive one. Instead we just have to
push on and try the next auth method in the list from the last
USERAUTH_FAILURE we did see.
Hence, a new flag lets us suppress the usual behaviour of waiting
until we have a response packet on the queue, and then all references
to pktin after that are tested for NULL.
ssh2userauth.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
commit 2cdff46d9803ee7186607562567f177375e66c31
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=2cdff46d9803ee7186607562567f177375e66c31;hp=c99d37a7febb1bf6fc3785edfa4a386df0f2c0b2
Author: Simon Tatham <anakin at pobox.com>
Date: Thu Dec 6 18:35:27 2018 +0000
Remove the old in_commasep_string system.
It's just silly to have _two_ systems for traversing a string of
comma-separated protocol ids. I think the new get_commasep_word
technique for looping over the elements of a string is simpler and
more general than the old membership-testing approach, and also it's
necessary for the modern KEX untangling system (which has to be able
to loop over one string, even if it used a membership test to check
things in the other). So this commit rewrites the two remaining uses
of in_commasep_string to use get_commasep_word instead, and deletes
the former.
ssh.h | 3 ---
ssh2transport.c | 13 ++++++++-----
ssh2userauth.c | 46 ++++++++++++++++++++++++++++------------------
sshcommon.c | 39 ---------------------------------------
4 files changed, 36 insertions(+), 65 deletions(-)
commit 50b9448450b924d71b6637daa5de3351d283effb
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=50b9448450b924d71b6637daa5de3351d283effb;hp=2cdff46d9803ee7186607562567f177375e66c31
Author: Simon Tatham <anakin at pobox.com>
Date: Thu Dec 6 18:41:30 2018 +0000
Makefile.clangcl: move $(CCTARGET) out of $(CC).
Now $(CC) is defined to be nothing but the name of the clang-cl binary
itself, which makes it easier to drop in a different one for a special
purpose.
(I tried to use this for static analysis recently - unsuccessfully, as
yet, but I think this change will make anything else along the same
lines easier as well.)
mkfiles.pl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
More information about the tartarus-commits
mailing list