simon-git: putty (master): Simon Tatham
Commits to Tartarus hosted VCS
tartarus-commits at lists.tartarus.org
Thu May 31 18:52:51 BST 2018
TL;DR:
37aca55 Makefile.clangcl: permit building for Windows on Arm.
421d772 Mention CPU architecture in Windows build info.
a4d82d9 Add Arm Windows builds to the main build script.
2cf07bb Buildscr: parallelise all the 'make' commands.
619f672 Move null pointer checks to before FROMFIELD.
108e19e Install ssh-connection packet handlers synchronously.
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-05-31 18:52:51
commit 37aca556cece1d6ab7f1405c92f157cdb65d8555
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=37aca556cece1d6ab7f1405c92f157cdb65d8555;hp=d659507d93da599281f6244c914eda9a52e2097b
Author: Simon Tatham <anakin at pobox.com>
Date: Wed May 30 19:10:07 2018 +0100
Makefile.clangcl: permit building for Windows on Arm.
Now we don't have to worry about which windres we're using (or whether
another target architecture's windres will do just as well), this is
very easy - just test for a couple of extra values of $(Platform).
To build on Arm with VS2017 includes and libraries, various blog posts
and websites explain that you have to #define a cumbersome macro
called _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE, without which the
headers will #error at you. But if you do that, then everything seems
to compile fine and I actually tested it on an Arm Windows machine
today.
Also, I had to disable stack protection (/GS-), because clang-cl
doesn't yet support the particular form of it for which the VS2017 Arm
C library provides the runtime support. Unfortunate in a security
application, of course, but there we go.
mkfiles.pl | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
commit 421d772e27a61f405e562175b19e7c4765a29d9d
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=421d772e27a61f405e562175b19e7c4765a29d9d;hp=37aca556cece1d6ab7f1405c92f157cdb65d8555
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 31 18:12:01 2018 +0100
Mention CPU architecture in Windows build info.
Apparently Windows on Arm has an emulator that lets it run x86
binaries without it being obvious, which could get confusing when
people start reporting what version of what they're running where.
(Indeed, it might get confusing for _me_ during early testing.) So now
the Windows builds explicitly state 'x86' or 'Arm' as well as 32- or
64-bit.
windows/winstuff.h | 6 ++++++
1 file changed, 6 insertions(+)
commit a4d82d90a81ebd159b04fb4620a0a338eea6a825
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=a4d82d90a81ebd159b04fb4620a0a338eea6a825;hp=421d772e27a61f405e562175b19e7c4765a29d9d
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 31 18:19:23 2018 +0100
Add Arm Windows builds to the main build script.
I build both 32- and 64-bit versions of the .exe files, code-sign
them, and create the same .zip file as I do for x86 Windows. I don't
yet have a method of building Arm MSI installers, though.
Buildscr | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
commit 2cf07bb8fe6fb9cee1762b4e87837320b07b69bc
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=2cf07bb8fe6fb9cee1762b4e87837320b07b69bc;hp=a4d82d90a81ebd159b04fb4620a0a338eea6a825
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 31 18:11:16 2018 +0100
Buildscr: parallelise all the 'make' commands.
Now we're building four rather than two sets of Windows binaries, the
build time has gone up rather painfully. I've just added a feature to
bob where it will invent a sensible value to use in 'make -j' and the
like, so let's start using it.
Buildscr | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
commit 619f6722d8ed7fd7d5a115ee4c268a185bd350a0
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=619f6722d8ed7fd7d5a115ee4c268a185bd350a0;hp=2cf07bb8fe6fb9cee1762b4e87837320b07b69bc
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 31 18:32:09 2018 +0100
Move null pointer checks to before FROMFIELD.
This fixes an oversight in commit 0fc2d3b45: if a key creation
function returns a null 'ssh_key *', then adjusting the pointer's
address using FROMFIELD is a mistake, both in technical C terms
(undefined behaviour) and practically speaking because it will foil
the subsequent check against NULL. Instead, if we're going to check a
pointer against NULL, we must do it _before_ applying this kind of
address-adjusting type conversion.
sshdss.c | 16 ++++++++++------
sshecc.c | 23 ++++++++++++++---------
sshrsa.c | 24 ++++++++++++++++--------
3 files changed, 40 insertions(+), 23 deletions(-)
commit 108e19e73cf7dad9bfd8732784ced04d97f827d9
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=108e19e73cf7dad9bfd8732784ced04d97f827d9;hp=619f6722d8ed7fd7d5a115ee4c268a185bd350a0
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 31 18:42:47 2018 +0100
Install ssh-connection packet handlers synchronously.
I had a one-off 'Strange packet received' error yesterday for an
SSH_MSG_GLOBAL_REQUEST at connection startup. I wasn't able to
reproduce, but examining the packet logs from the successful retry
suggested that the global request in question was an OpenSSH 'here are
my hostkeys' message.
My belief is that in the failing connection that request packet must
have arrived exceptionally promptly, and been added to pq_full before
the preceding SSH_MSG_USERAUTH_SUCCESS had been processed. So the code
that loops along pq_full feeding everything to the dispatch table
would have moved the USERAUTH_SUCCESS on to pq_ssh2_userauth and
scheduled a callback to handle it, and then moved on to the
GLOBAL_REQUEST which would have gone straight to the dispatch table
handler for 'help, we weren't expecting this message'. The userauth
callback would later on have installed a more sensible dispatch table
handler for global requests, but by then, it was too late.
Solution: make a special case during pq_full processing, so that when
we see USERAUTH_SUCCESS we _immediately_ - before continuing to
traverse pq_full - install the initial dispatch table entries for the
ssh-connection protocol. That way, even if connection messages are
already in the queue, we won't get confused by them.
ssh.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 55 insertions(+), 21 deletions(-)
More information about the tartarus-commits
mailing list