Skip to content

Commit

Permalink
Merge branch 'pre-0.75' into ranvis-pre-0.75
Browse files Browse the repository at this point in the history
  • Loading branch information
ranvis committed Apr 23, 2021
2 parents 993fb5f + b6d98b4 commit d308e1e
Show file tree
Hide file tree
Showing 265 changed files with 28,719 additions and 12,321 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@
/pterm
/puttyapp
/ptermapp
/psusan
/osxlaunch
/uppity
/psocks
/unix/PuTTY.app
/unix/Pterm.app
/fuzzterm
Expand Down
4 changes: 2 additions & 2 deletions Buildscr
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ delegate -
in putty do ./mkauto.sh
in putty do ./configure CC=clang CFLAGS="-fsanitize=address -fsanitize=leak"
in putty do make -j$(nproc)
in putty do python test/cryptsuite.py
in putty do python3 test/cryptsuite.py
enddelegate

# Windowsify LICENCE, since it's going in the Windows installers.
Expand Down Expand Up @@ -241,7 +241,7 @@ in putty/windows with clangcl_a64 do Platform=arm64 make -f Makefile.clangcl BUI
#
# There's no installer to go with these, so they must also embed the
# help file.
in putty/windows with clangcl32_2003 do Platform=x86 make -f Makefile.clangcl BUILDDIR=buildold/ RCFL=-DEMBED_CHM $(Makeargs) CCTARGET=i386-pc-windows-msvc13.0.0 SUBSYSVER=,4.0 EXTRA_windows=wincrt0.obj EXTRA_console=crt0.obj EXTRA_libs=libcpmt.lib XFLAGS=/arch:IA32 all -j$(nproc)
in putty/windows with clangcl32_2003 do Platform=x86 make -f Makefile.clangcl BUILDDIR=buildold/ RCFL=-DEMBED_CHM $(Makeargs) CCTARGET=i386-pc-windows-msvc13.0.0 SUBSYSVER=,4.0 EXTRA_windows=wincrt0.obj EXTRA_console=crt0.obj EXTRA_libs=libcpmt.lib XFLAGS="/arch:IA32 -Wno-pragma-pack" all -j$(nproc)

# Remove test programs again.
in putty/windows do make -f Makefile.clangcl BUILDDIR=build32/ cleantestprogs
Expand Down
2 changes: 1 addition & 1 deletion Buildscr.cv
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ enddelegate
# Windows scanner for download).
delegate covscan32wine
in putty do tar xzvf cov-int.tar.gz
in putty/windows do cov-build --dir ../cov-int make -f Makefile.mgw CC=winegcc RC=wrc XFLAGS="-DCOVERITY -DNO_SECUREZEROMEMORY -D_FORCE_SOFTWARE_AES"
in putty/windows do cov-build --dir ../cov-int make -f Makefile.mgw CC=winegcc RC=wrc
in putty do tar czvf cov-int.tar.gz cov-int
return putty/cov-int.tar.gz
enddelegate
Expand Down
14 changes: 12 additions & 2 deletions CHECKLST.txt
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,18 @@ Making a release candidate build
* check they report the right version number
* if there's any easily observable behaviour difference between
the release branch and master, arrange to observe it
* test the Windows installer
* test the Unix source tarball.
* test that the Windows installer installs successfully
+ on x86 and Arm, and test that putty.exe runs in both cases
* test that the Unix source tarball unpacks and builds
+ on at least a reasonably current stable Linux distro, and
also try Debian sid
+ test-build with all of GTK 1, 2 and 3
+ test-build with -DNOT_X_WINDOWS
* feed the release-candidate source to Coverity and make sure it
didn't turn up any last-minute problems
* make sure we have a clean run of sctest
* do some testing on a system with a completely clean slate (no
prior saved session data)

Preparing to make the release
-----------------------------
Expand Down
8 changes: 4 additions & 4 deletions LICENCE
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
PuTTY is copyright 1997-2020 Simon Tatham.
PuTTY is copyright 1997-2021 Simon Tatham.

Portions copyright Robert de Bath, Joris van Rantwijk, Delian
Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,
Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus
Kuhn, Colin Watson, Christopher Staite, Lorenz Diener, Christian
Brabandt, Jeff Smith, Pavel Kryukov, Maxim Kuznetsov, Svyatoslav
Kuzmich, Nico Williams, Viktor Dukhovni, CORE SDI S.A,
Hideki EIRAKU, Yebisuya, Arita, nag, ARISAWA Akihiro, mikenekoDX,
and SATO Kentaro.
Kuzmich, Nico Williams, Viktor Dukhovni, Josh Dersch, Lars Brinkhoff,
CORE SDI S.A, Hideki EIRAKU, Yebisuya, Arita, nag, ARISAWA Akihiro,
mikenekoDX, and SATO Kentaro.

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
Expand Down
100 changes: 60 additions & 40 deletions Recipe
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,6 @@
# Disables PuTTY's use of SecureZeroMemory(), which is missing
# from some environments' header files.
#
# - XFLAGS=/DTELNET_DEFAULT
# Causes PuTTY to default to the Telnet protocol (in the absence
# of Default Settings and so on to the contrary). Normally PuTTY
# will default to SSH.
#
# - XFLAGS=/DDEBUG
# Causes PuTTY to enable internal debugging.
#
Expand Down Expand Up @@ -244,35 +239,35 @@ TERMINAL = terminal stripctrl wcwidth logging tree234 minibidi

# GUI front end and terminal emulator (putty, puttytel).
GUITERM = TERMINAL window windlg winctrls sizetip winprint winutils
+ wincfg sercfg winhelp winjump sessprep
+ wincfg winhelp winjump sessprep winselgui
+ winl10n winwallp

# Same thing on Unix.
UXTERM = TERMINAL uxcfg sercfg uxucs uxprint timing callback miscucs
UXTERM = TERMINAL uxcfg uxucs uxprint timing callback miscucs
+ uxl10n
GTKTERM = UXTERM gtkwin gtkcfg gtkdlg gtkfont gtkcols gtkmisc xkeysym
+ x11misc gtkcomm sessprep
GTKMAIN = gtkmain cmdline

# Non-SSH back ends (putty, puttytel, plink).
NONSSH = telnet raw rlogin ldisc pinger
+ iso2022 wcwidth
NONSSH = telnet raw rlogin supdup ldisc pinger
+ wcwidth

# SSH back end (putty, plink, pscp, psftp).
ARITH = mpint ecc
SSHCRYPTO = ARITH sshmd5 sshsha sshsh256 sshsh512
SSHCRYPTO = ARITH sshmd5 sshsha sshsh256 sshsh512 sshsha3 sshblake2 sshargon2
+ sshrsa sshdss sshecc
+ sshdes sshblowf sshaes sshccp ssharcf
+ sshdh sshcrc sshcrcda sshauxcrypt
+ sshhmac
SSHCOMMON = sshcommon sshprng sshrand SSHCRYPTO
SSHCOMMON = sshcommon sshutils sshprng sshrand SSHCRYPTO
+ sshverstring
+ sshpubk sshzlib
+ sshmac marshal nullplug
+ sshgssc pgssapi wildcard ssh1censor ssh2censor ssh2bpp
+ ssh2transport ssh2transhk ssh2connection portfwd x11fwd
+ ssh1connection ssh1bpp
SSH = SSHCOMMON ssh ssh2bpp-bare
+ ssh1connection ssh1bpp ssh2bpp-bare
SSH = SSHCOMMON ssh
+ ssh1login ssh2userauth
+ pinger
+ sshshare aqsync agentf
Expand All @@ -284,9 +279,13 @@ UXSSH = SSH uxnoise uxagentc uxgss uxshare
# SFTP implementation (pscp, psftp).
SFTP = psftpcommon sftp sftpcommon logging cmdline

# Components of the prime-generation system.
SSHPRIME = sshprime smallprimes primecandidate millerrabin pockle mpunsafe

# Miscellaneous objects appearing in all the utilities, or all the
# network ones, or the Unix or Windows subsets of those in turn.
MISC = misc utils marshal memory stripctrl wcwidth
+ iso2022
MISCNETCOMMON = timing callback MISC version tree234 CONF
MISCNET = MISCNETCOMMON be_misc settings proxy
WINMISC = MISCNET winstore winnet winhandl cmdline windefs winmisc winproxy
Expand All @@ -297,7 +296,7 @@ UXMISC = MISCNET UXMISCCOMMON uxproxy uxutils

# SSH server.
SSHSERVER = SSHCOMMON sshserver settings be_none logging ssh2kex-server
+ ssh2userauth-server sshrsag sshprime ssh2connection-server
+ ssh2userauth-server sshrsag SSHPRIME ssh2connection-server
+ sesschan sftpcommon sftpserver proxy cproxy ssh1login-server
+ ssh1connection-server scpserver

Expand All @@ -315,15 +314,18 @@ LIBS = advapi32.lib user32.lib gdi32.lib comdlg32.lib
# Network backend sets. This also brings in the relevant attachment
# to proxy.c depending on whether we're crypto-avoidant or not.
BE_ALL = be_all cproxy
BE_NOSSH = be_nossh nocproxy
BE_NOSSH = be_nossh norand nocproxy
BE_SSH = be_ssh cproxy
BE_NONE = be_none nocproxy
# More backend sets, with the additional Windows serial-port module.
W_BE_ALL = be_all_s winser cproxy
W_BE_NOSSH = be_nos_s winser nocproxy
W_BE_NOSSH = be_nos_s norand winser nocproxy
# And with the Unix serial-port module.
U_BE_ALL = be_all_s uxser cproxy
U_BE_NOSSH = be_nos_s uxser nocproxy
U_BE_NOSSH = be_nos_s norand uxser nocproxy

# Auxiliary crypto modules used by key generators.
KEYGEN = sshrsag sshdssg sshecdsag

# ------------------------------------------------------------
# Definitions of actual programs. The program name, followed by a
Expand All @@ -333,27 +335,33 @@ U_BE_NOSSH = be_nos_s uxser nocproxy

putty : [G] GUITERM NONSSH WINSSH W_BE_ALL WINMISC winx11 putty.res LIBS
puttytel : [G] GUITERM NONSSH W_BE_NOSSH WINMISC puttytel.res nogss LIBS
plink : [C] winplink wincons NONSSH WINSSH W_BE_ALL logging WINMISC
+ winx11 plink.res winnojmp sessprep noterm winnohlp LIBS
+ l10ndummy
plink : [C] winplink wincons console NONSSH WINSSH W_BE_ALL logging WINMISC
+ winx11 plink.res winnojmp sessprep noterm winnohlp winselcli
+ clicons wincliloop console LIBS
+ winl10n
pscp : [C] pscp winsftp wincons WINSSH BE_SSH SFTP wildcard WINMISC
+ pscp.res winnojmp winnohlp LIBS
+ l10ndummy
+ pscp.res winnojmp winnohlp winselcli clicons wincliloop
+ console LIBS
+ winl10n
psftp : [C] psftp winsftp wincons WINSSH BE_SSH SFTP wildcard WINMISC
+ psftp.res winnojmp winnohlp LIBS
+ l10ndummy
+ psftp.res winnojmp winnohlp winselcli clicons wincliloop
+ console LIBS
+ winl10n
# winl10n must be used for CLI too. l10ndummy cannot query connection sharing with text translation.

pageant : [G] winpgnt pageant sshrsa sshpubk sshdes ARITH sshmd5 version
+ tree234 MISC sshaes sshsha winsecur winpgntc aqsync sshdss sshsh256
+ sshsh512 winutils sshecc winmisc winmiscs winhelp conf pageant.res
+ sshauxcrypt sshhmac LIBS
+ sshauxcrypt sshhmac wincapi winnps winnpc winhsock errsock winnet
+ winhandl callback be_misc winselgui winhandl sshsha3 sshblake2
+ sshargon2 LIBS
+ winl10n

puttygen : [G] winpgen sshrsag sshdssg sshprime sshdes ARITH sshmd5 version
puttygen : [G] winpgen KEYGEN SSHPRIME sshdes ARITH sshmd5 version
+ sshrand winnoise sshsha winstore MISC winctrls sshrsa sshdss winmisc
+ sshpubk sshaes sshsh256 sshsh512 IMPORT winutils puttygen.res
+ tree234 notiming winhelp winnojmp CONF LIBS wintime sshecc sshprng
+ sshecdsag sshauxcrypt sshhmac winsecur winmiscs
+ sshauxcrypt sshhmac winsecur winmiscs sshsha3 sshblake2 sshargon2
+ winl10n

pterm : [X] GTKTERM uxmisc misc ldisc settings uxpty uxsel BE_NONE uxstore
Expand All @@ -367,24 +375,27 @@ puttytel : [X] GTKTERM uxmisc misc ldisc settings uxsel U_BE_NOSSH
+ nogss utils memory GTKMAIN

plink : [U] uxplink uxcons NONSSH UXSSH U_BE_ALL logging UXMISC uxsignal
+ ux_x11 noterm uxnogtk sessprep cmdline
+ ux_x11 noterm uxnogtk sessprep cmdline clicons uxcliloop console

PUTTYGEN_UNIX = sshrsag sshdssg sshprime sshdes ARITH sshmd5 version sshprng
PUTTYGEN_UNIX = KEYGEN SSHPRIME sshdes ARITH sshmd5 version sshprng
+ sshrand uxnoise sshsha MISC sshrsa sshdss uxcons uxstore uxmisc
+ sshpubk sshaes sshsh256 sshsh512 IMPORT puttygen.res time tree234
+ uxgen notiming CONF sshecc sshecdsag uxnogtk sshauxcrypt sshhmac
+ uxpoll uxutils
+ uxgen notiming CONF sshecc sshsha3 uxnogtk sshauxcrypt sshhmac
+ uxpoll uxutils sshblake2 sshargon2 console
puttygen : [U] cmdgen PUTTYGEN_UNIX
cgtest : [UT] cgtest PUTTYGEN_UNIX

pscp : [U] pscp uxsftp uxcons UXSSH BE_SSH SFTP wildcard UXMISC uxnogtk
+ clicons uxcliloop console
psftp : [U] psftp uxsftp uxcons UXSSH BE_SSH SFTP wildcard UXMISC uxnogtk
+ clicons uxcliloop console

pageant : [X] uxpgnt uxagentc aqsync pageant sshrsa sshpubk sshdes ARITH
+ sshmd5 version tree234 misc sshaes sshsha sshdss sshsh256 sshsh512
+ sshecc CONF uxsignal nocproxy nogss be_none x11fwd ux_x11 uxcons
+ gtkask gtkmisc nullplug logging UXMISC uxagentsock utils memory
+ sshauxcrypt sshhmac sshprng uxnoise
+ sshauxcrypt sshhmac sshprng uxnoise uxcliloop sshsha3 sshblake2
+ sshargon2 console

ptermapp : [XT] GTKTERM uxmisc misc ldisc settings uxpty uxsel BE_NONE uxstore
+ uxsignal CHARSET uxpterm version time xpmpterm xpmptcfg
Expand All @@ -396,26 +407,35 @@ osxlaunch : [UT] osxlaunch

fuzzterm : [UT] UXTERM CHARSET MISC version uxmisc uxucs fuzzterm time settings
+ uxstore be_none uxnogtk memory
testcrypt : [UT] testcrypt SSHCRYPTO sshprng sshprime marshal utils
+ memory tree234 uxutils
testcrypt : [C] testcrypt SSHCRYPTO sshprng sshprime marshal utils
+ memory tree234 winmiscs
testcrypt : [UT] testcrypt SSHCRYPTO sshprng SSHPRIME sshpubk marshal utils
+ memory tree234 uxutils KEYGEN
testcrypt : [C] testcrypt SSHCRYPTO sshprng SSHPRIME sshpubk marshal utils
+ memory tree234 winmiscs KEYGEN
testsc : [UT] testsc SSHCRYPTO marshal utils memory tree234 wildcard
+ sshmac uxutils
+ sshmac uxutils sshpubk
testzlib : [UT] testzlib sshzlib utils marshal memory

uppity : [UT] uxserver SSHSERVER UXMISC uxsignal uxnoise uxgss uxnogtk
+ uxpty uxsftpserver ux_x11 uxagentsock procnet
+ uxpty uxsftpserver ux_x11 uxagentsock procnet uxcliloop
psusan : [U] uxpsusan SSHSERVER UXMISC uxsignal uxnoise nogss uxnogtk
+ uxpty uxsftpserver ux_x11 uxagentsock procnet uxcliloop

PSOCKS = psocks portfwd conf sshutils logging proxy nocproxy timing callback
+ time tree234 version errsock be_misc norand MISC
psocks : [C] PSOCKS winsocks wincons winproxy winnet winmisc winselcli
+ winhsock winhandl winmiscs winnohlp wincliloop console LIBS
psocks : [UT] PSOCKS uxsocks uxcons uxproxy uxnet uxmisc uxpoll uxsel uxnogtk
+ uxpeer uxfdsock uxcliloop uxsignal console

# ----------------------------------------------------------------------
# On Windows, provide a means of removing local test binaries that we
# aren't going to actually ship. (I prefer this to not building them
# in the first place, so that we find out about build breakage early.)
!begin vc
cleantestprogs:
-del $(BUILDDIR)testcrypt.exe
-del $(BUILDDIR)testcrypt.exe $(BUILDDIR)psocks.exe
!end
!begin clangcl
cleantestprogs:
-rm -f $(BUILDDIR)testcrypt.exe
-rm -f $(BUILDDIR)testcrypt.exe $(BUILDDIR)psocks.exe
!end
46 changes: 23 additions & 23 deletions agentf.c
Original file line number Diff line number Diff line change
Expand Up @@ -147,29 +147,29 @@ static void agentf_send_eof(Channel *chan);
static char *agentf_log_close_msg(Channel *chan);
static void agentf_set_input_wanted(Channel *chan, bool wanted);

static const struct ChannelVtable agentf_channelvt = {
agentf_free,
chan_remotely_opened_confirmation,
chan_remotely_opened_failure,
agentf_send,
agentf_send_eof,
agentf_set_input_wanted,
agentf_log_close_msg,
chan_default_want_close,
chan_no_exit_status,
chan_no_exit_signal,
chan_no_exit_signal_numeric,
chan_no_run_shell,
chan_no_run_command,
chan_no_run_subsystem,
chan_no_enable_x11_forwarding,
chan_no_enable_agent_forwarding,
chan_no_allocate_pty,
chan_no_set_env,
chan_no_send_break,
chan_no_send_signal,
chan_no_change_window_size,
chan_no_request_response,
static const ChannelVtable agentf_channelvt = {
.free = agentf_free,
.open_confirmation = chan_remotely_opened_confirmation,
.open_failed = chan_remotely_opened_failure,
.send = agentf_send,
.send_eof = agentf_send_eof,
.set_input_wanted = agentf_set_input_wanted,
.log_close_msg = agentf_log_close_msg,
.want_close = chan_default_want_close,
.rcvd_exit_status = chan_no_exit_status,
.rcvd_exit_signal = chan_no_exit_signal,
.rcvd_exit_signal_numeric = chan_no_exit_signal_numeric,
.run_shell = chan_no_run_shell,
.run_command = chan_no_run_command,
.run_subsystem = chan_no_run_subsystem,
.enable_x11_forwarding = chan_no_enable_x11_forwarding,
.enable_agent_forwarding = chan_no_enable_agent_forwarding,
.allocate_pty = chan_no_allocate_pty,
.set_env = chan_no_set_env,
.send_break = chan_no_send_break,
.send_signal = chan_no_send_signal,
.change_window_size = chan_no_change_window_size,
.request_response = chan_no_request_response,
};

Channel *agentf_new(SshChannel *c)
Expand Down
8 changes: 4 additions & 4 deletions be_all.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@
*/
const char *const appname = "PuTTY";

#ifdef TELNET_DEFAULT
const int be_default_protocol = PROT_TELNET;
#else
const int be_default_protocol = PROT_SSH;
#endif

const struct BackendVtable *const backends[] = {
&ssh_backend,
&telnet_backend,
&rlogin_backend,
&supdup_backend,
&raw_backend,
&sshconn_backend,
NULL
};

const size_t n_ui_backends = 1;
10 changes: 5 additions & 5 deletions be_all_s.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@
*/
const char *const appname = "PuTTY";

#ifdef TELNET_DEFAULT
const int be_default_protocol = PROT_TELNET;
#else
const int be_default_protocol = PROT_SSH;
#endif

const struct BackendVtable *const backends[] = {
&ssh_backend,
&serial_backend,
&telnet_backend,
&rlogin_backend,
&supdup_backend,
&raw_backend,
&serial_backend,
&sshconn_backend,
NULL
};

const size_t n_ui_backends = 2;
Loading

0 comments on commit d308e1e

Please sign in to comment.