u/mdw/putty
15 years agoArguments to ctype functions are required to be either EOF or representable
ben [Sun, 11 Jan 2009 14:26:27 +0000 (14:26 +0000)]
Arguments to ctype functions are required to be either EOF or representable
as unsigned char.  This means that passing in a bare char is incorrect on
systems where char is signed.  Sprinkle some appropriate casts to prevent
this.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8406 cda61777-01e9-0310-a592-d414129be87e

15 years agoPropagate my ctype fixes (r8404) from libcharset.
ben [Sun, 11 Jan 2009 14:20:34 +0000 (14:20 +0000)]
Propagate my ctype fixes (r8404) from libcharset.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8405 cda61777-01e9-0310-a592-d414129be87e

15 years agoWeaken the assertion in general_textout(). It was failing in the
simon [Fri, 9 Jan 2009 18:55:45 +0000 (18:55 +0000)]
Weaken the assertion in general_textout(). It was failing in the
case of double-width text (ESC # 3, ESC # 4, ESC # 6), because the
string passed to it was not truncated to the same width as the
clipping rectangle. (In fact, it _can't_ reliably be, in the case
where the window width is odd.) So instead we just assert that we
managed to _at least_ fill the clipping rectangle, not that we
exactly filled it.

The problem is easily reproduced by sending ESC # 8 (fill the screen
with Es) followed by ESC # 3. It doesn't typically happen, though,
if you _manually_ fill the screen with Es, because in that case
PuTTY's terminal buffer ends up being filled with CSET_ACP | 'E' or
similar, which means that general_textout() never gets called
because one of the other branches of do_text_internal() does the
work instead. ESC # 8 will fill the terminal buffer with genuine
_Unicode_ 'E' characters, which exercises the failing code path.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8403 cda61777-01e9-0310-a592-d414129be87e

15 years agoAnother patch from Colin, providing a "make distclean" target in the
simon [Thu, 8 Jan 2009 18:21:33 +0000 (18:21 +0000)]
Another patch from Colin, providing a "make distclean" target in the
autoconf makefile.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8401 cda61777-01e9-0310-a592-d414129be87e

15 years agoColin also suggests that we can replace the backticks in the GTK
simon [Thu, 8 Jan 2009 18:19:52 +0000 (18:19 +0000)]
Colin also suggests that we can replace the backticks in the GTK
makefile with make's own $(shell ...) function, which means that
gtk-config and krb5-config and so on only get run once per make
invocation instead of once per gcc invocation.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8400 cda61777-01e9-0310-a592-d414129be87e

15 years agoColin Watson reports a strange problem whereby krb5-config
simon [Thu, 8 Jan 2009 18:18:14 +0000 (18:18 +0000)]
Colin Watson reports a strange problem whereby krb5-config
incorporates the environment variable CFLAGS into its output. Avoid
exporting our version of it from the Makefile (which actually causes
build failures, since quoting phase issues mean that the backticks
in our version end up unexpanded).

git-svn-id: svn://svn.tartarus.org/sgt/putty@8399 cda61777-01e9-0310-a592-d414129be87e

15 years agoRejig windlg.c:verify_ssh_host_key() to silence a warning.
jacob [Tue, 6 Jan 2009 00:25:07 +0000 (00:25 +0000)]
Rejig windlg.c:verify_ssh_host_key() to silence a warning.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8394 cda61777-01e9-0310-a592-d414129be87e

15 years agoRemove a couple of unused variables.
jacob [Tue, 6 Jan 2009 00:16:35 +0000 (00:16 +0000)]
Remove a couple of unused variables.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8393 cda61777-01e9-0310-a592-d414129be87e

15 years agoIt's a new year (and there have even been checkins).
jacob [Mon, 5 Jan 2009 23:49:19 +0000 (23:49 +0000)]
It's a new year (and there have even been checkins).

git-svn-id: svn://svn.tartarus.org/sgt/putty@8392 cda61777-01e9-0310-a592-d414129be87e

15 years agosk_address_is_local() failed to cope when presented with a Unix-domain socket.
jacob [Mon, 5 Jan 2009 23:36:14 +0000 (23:36 +0000)]
sk_address_is_local() failed to cope when presented with a Unix-domain socket.
This could cause Unix PuTTY to segfault when X forwarding over an SSH session
through a proxy.
(sk_getaddr() wouldn't cope either -- in that case, add an assertion to make it
more obvious; I don't think it should ever happen.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8391 cda61777-01e9-0310-a592-d414129be87e

15 years agoBe prepared for x11_setup_display() to return NULL (for instance, if DISPLAY
jacob [Mon, 5 Jan 2009 22:53:14 +0000 (22:53 +0000)]
Be prepared for x11_setup_display() to return NULL (for instance, if DISPLAY
has invalid contents). Simply refuse to try X forwarding in this circumstance.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8390 cda61777-01e9-0310-a592-d414129be87e

15 years agor5080 didn't go far enough -- since 0.58, anyone on Unix who didn't previously
jacob [Mon, 5 Jan 2009 19:39:27 +0000 (19:39 +0000)]
r5080 didn't go far enough -- since 0.58, anyone on Unix who didn't previously
have default settings for "bell overload" mode will have inherited a twitchy
set of defaults where bells are disabled after 2ms and enabled after 5ms,
rather than 2s and 5s as intended. This error has probably propagated into some
people's saved sessions by now, but there's not much to be done.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8389 cda61777-01e9-0310-a592-d414129be87e

15 years agoAdd some hard-coded textual literal-IP representations of localhost to
jacob [Mon, 5 Jan 2009 02:45:38 +0000 (02:45 +0000)]
Add some hard-coded textual literal-IP representations of localhost to
sk_hostname_is_local(), to catch the case where we're doing something like X11
forwarding over SSH through a proxy, and we've thus disabled local lookup of
hostnames.
(I think this is what's behind the report in
<e9a86996-5dc2-4428-9b0c-c65693ca6351@m32g2000hsf.googlegroups.com>
in comp.security.ssh, although I'd like to know more of the circumstances.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8385 cda61777-01e9-0310-a592-d414129be87e

15 years ago...and fix an unlikely memory leak.
jacob [Mon, 5 Jan 2009 01:15:06 +0000 (01:15 +0000)]
...and fix an unlikely memory leak.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8384 cda61777-01e9-0310-a592-d414129be87e

15 years agoCope with a (non-standard) ENAMETOOLONG return from gethostname(); glibc will
jacob [Mon, 5 Jan 2009 01:01:58 +0000 (01:01 +0000)]
Cope with a (non-standard) ENAMETOOLONG return from gethostname(); glibc will
do this if the supplied buffer isn't big enough, which shouldn't lead to
complete abandonment of X11 auth. (Would only have bitten with hostnames
>255 chars anyway.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8383 cda61777-01e9-0310-a592-d414129be87e

15 years agor8305 made platform_x11_best_transport[] obsolete, but there still seem to be a
jacob [Sun, 4 Jan 2009 23:36:24 +0000 (23:36 +0000)]
r8305 made platform_x11_best_transport[] obsolete, but there still seem to be a
few instances around; expunge them.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8382 cda61777-01e9-0310-a592-d414129be87e

15 years agor8305 seems to have made Unix PuTTY rather over-keen on Unix-domain sockets;
jacob [Sun, 4 Jan 2009 23:28:25 +0000 (23:28 +0000)]
r8305 seems to have made Unix PuTTY rather over-keen on Unix-domain sockets;
unless a protocol is explicitly specified with "tcp/foovax:0", it assume a
Unix-domain socket, thus not allowing a remote display on a machine other than
the client.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8381 cda61777-01e9-0310-a592-d414129be87e

15 years agoBah, I've bumped into this often enough. Change one unsatisfactory cast for
jacob [Sun, 4 Jan 2009 22:24:08 +0000 (22:24 +0000)]
Bah, I've bumped into this often enough. Change one unsatisfactory cast for
another to shut up "warning: cast from pointer to integer of different size"
(and hence a -Werror compile failure) when compiling for Unix with DEBUG
defined on atreus (x86_64). Minimally checked that it doesn't introduce upset
elsewhere (i386).

git-svn-id: svn://svn.tartarus.org/sgt/putty@8380 cda61777-01e9-0310-a592-d414129be87e

15 years agoLog reason for failure to create a connection to a local X display.
jacob [Sun, 4 Jan 2009 21:43:20 +0000 (21:43 +0000)]
Log reason for failure to create a connection to a local X display.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8379 cda61777-01e9-0310-a592-d414129be87e

15 years agor8338 broke pasting with Shift-Ins and from the context menu on Windows.
jacob [Mon, 29 Dec 2008 20:04:42 +0000 (20:04 +0000)]
r8338 broke pasting with Shift-Ins and from the context menu on Windows.
Divert these to use the request_paste() interface.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8377 cda61777-01e9-0310-a592-d414129be87e

15 years ago"Derek" reports that the DECSLPP report of window-size-in-pixels (CSI 14 t)
jacob [Sat, 20 Dec 2008 19:43:20 +0000 (19:43 +0000)]
"Derek" reports that the DECSLPP report of window-size-in-pixels (CSI 14 t)
has width and height swapped. Since both a random xterm I have and
<http://invisible-island.net/xterm/ctlseqs/ctlseqs.txt> agree with him, I've
changed ours. (This stuff appears to originate in dtterm, but I can't check the
behaviour of that right now.)

While I'm here, the are-we-iconified report (CSI 11 t) looks to have the
wrong sense compared to the same sources, so swap that too.

(All this has been this way since it was originally implemented in r1414,
which doesn't cite a source. all-escapes is silent too.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8376 cda61777-01e9-0310-a592-d414129be87e

15 years ago"Derek" points out that reporting of wheel event coordinates to the host on
jacob [Sat, 20 Dec 2008 19:02:09 +0000 (19:02 +0000)]
"Derek" points out that reporting of wheel event coordinates to the host on
Windows was relative to the screen origin, not the window origin.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8375 cda61777-01e9-0310-a592-d414129be87e

15 years agoCosmetic: clarify that term->xterm_mouse is not boolean, etc.
jacob [Sat, 20 Dec 2008 18:52:09 +0000 (18:52 +0000)]
Cosmetic: clarify that term->xterm_mouse is not boolean, etc.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8374 cda61777-01e9-0310-a592-d414129be87e

15 years agogtk_selection_clear_targets() does not exist on GTK 1, so ifdef it.
simon [Wed, 3 Dec 2008 00:06:38 +0000 (00:06 +0000)]
gtk_selection_clear_targets() does not exist on GTK 1, so ifdef it.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8371 cda61777-01e9-0310-a592-d414129be87e

15 years agoAt some point recently, Unix PuTTY started suffering build errors
simon [Tue, 2 Dec 2008 18:18:32 +0000 (18:18 +0000)]
At some point recently, Unix PuTTY started suffering build errors
using -DNO_GSSAPI. Move some ifdefs around so it stops.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8370 cda61777-01e9-0310-a592-d414129be87e

15 years agoAdd missing call to gtk_selection_clear_targets(), without which the
simon [Mon, 1 Dec 2008 23:03:11 +0000 (23:03 +0000)]
Add missing call to gtk_selection_clear_targets(), without which the
list of selection targets offered by GTK PuTTY/pterm grows an extra
copy of each of the three supported text formats every time the user
makes a selection!

git-svn-id: svn://svn.tartarus.org/sgt/putty@8364 cda61777-01e9-0310-a592-d414129be87e

15 years agoChange the Unix version of Ssh_gss_name to be a gss_name_t rather than
ben [Mon, 1 Dec 2008 21:18:29 +0000 (21:18 +0000)]
Change the Unix version of Ssh_gss_name to be a gss_name_t rather than
void *, and hence eliminate a few casts.  The Windows definition is
unchanged, but I daresay I've managed to stop it compiling nonetheless.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8359 cda61777-01e9-0310-a592-d414129be87e

15 years agoAs far as I can tell, "simple@putty.projects.tartarus.org" has always been
jacob [Sun, 30 Nov 2008 21:35:33 +0000 (21:35 +0000)]
As far as I can tell, "simple@putty.projects.tartarus.org" has always been
implemented as a channel request, not a global one. Change documentation to
match implementation.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8355 cda61777-01e9-0310-a592-d414129be87e

15 years agoMove the code that reads the Windows clipboard into a trivial
simon [Fri, 28 Nov 2008 18:28:23 +0000 (18:28 +0000)]
Move the code that reads the Windows clipboard into a trivial
subthread, so that it won't deadlock if fetching the content of the
clipboard turns out to depend on a network connection forwarded
through PuTTY.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8338 cda61777-01e9-0310-a592-d414129be87e

15 years agoJacob correctly points out that I accidentally lost a clearing of
ben [Wed, 26 Nov 2008 14:30:58 +0000 (14:30 +0000)]
Jacob correctly points out that I accidentally lost a clearing of
s->gss_sndtok in r8326.  I'm not sure it was strictly necessary, since
even if there's no send token, gss_init_sec_context() is meant to explicitly
make it empty, but it wasn't an intentional change.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8337 cda61777-01e9-0310-a592-d414129be87e

15 years agoFix a Windows-specific GSS crash introduced in r8326, which (again) apparently
jacob [Wed, 26 Nov 2008 14:11:49 +0000 (14:11 +0000)]
Fix a Windows-specific GSS crash introduced in r8326, which (again) apparently
triggers in failure cases. Patch by Iain Patterson.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8336 cda61777-01e9-0310-a592-d414129be87e

15 years agoMitigation for VU#958563: When using a CBC-mode server-to-client cipher
ben [Wed, 26 Nov 2008 12:49:25 +0000 (12:49 +0000)]
Mitigation for VU#958563:  When using a CBC-mode server-to-client cipher
under SSH-2, don't risk looking at the length field of an incoming packet
until we've successfully MAC'ed the packet.

This requires a change to the MAC mechanics so that we can calculate MACs
incrementally, and output a MAC for the packet so far while still being
able to add more data to the packet later.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8334 cda61777-01e9-0310-a592-d414129be87e

15 years agoNow that we use real gss_buffer_ts, there's no need to muck about with
ben [Tue, 25 Nov 2008 22:11:17 +0000 (22:11 +0000)]
Now that we use real gss_buffer_ts, there's no need to muck about with
casts when passing them to GSS-API functions.  Removing them makes the code
more readable and allows better type-checking.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8333 cda61777-01e9-0310-a592-d414129be87e

15 years agoHave wingss.c include <windows.h> by way of putty.h rather than
simon [Tue, 25 Nov 2008 18:54:05 +0000 (18:54 +0000)]
Have wingss.c include <windows.h> by way of putty.h rather than
directly. Fixes a build failure involving name clashes between
winsock2.h and winsock.h, which had somehow managed to get included
in succession.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8332 cda61777-01e9-0310-a592-d414129be87e

15 years agoFixed a PuTTYtel startup assertion failure introduced in r8305.
jacob [Tue, 25 Nov 2008 18:43:52 +0000 (18:43 +0000)]
Fixed a PuTTYtel startup assertion failure introduced in r8305.
While I'm here, a cosmetic PuTTYtel change: remove a reference to SSH from the
"logical host name" label in PuTTYtel only.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8331 cda61777-01e9-0310-a592-d414129be87e

15 years agoI think sshgss.h needs puttyps.h for Ssh_gss_buf. Makes it compile for Windows,
jacob [Mon, 24 Nov 2008 23:56:55 +0000 (23:56 +0000)]
I think sshgss.h needs puttyps.h for Ssh_gss_buf. Makes it compile for Windows,
anyway.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8327 cda61777-01e9-0310-a592-d414129be87e

15 years agoChange how we handle the Ssh_gss_buf type. Previously, we defined it
ben [Mon, 24 Nov 2008 23:44:55 +0000 (23:44 +0000)]
Change how we handle the Ssh_gss_buf type.  Previously, we defined it
ourselves, but on Unix then assumed it was compatible with the system's
gss_buffer_desc, which wasn't the case on LP64 systems.  Now, on Unix
we make Ssh_gss_buf into an alias for gss_buffer_desc, though we keep
something similar to the existing behaviour on Windows.  This requires
renaming a couple of the fields in Ssh_gss_buf, and hence fixing all
the references.

Tested on Linux (MIT Kerberos) and Solaris.  Compiled on NetBSD (Heimdal).
Not tested on Windows because neither mingw32 nor winegcc worked out of the
box for me.  I think the Windows changes are all syntactic, though, so
if this compiles it should work no worse than before.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8326 cda61777-01e9-0310-a592-d414129be87e

15 years agoTreat lines starting with '#' as comments in PSFTP.
jacob [Mon, 24 Nov 2008 18:19:55 +0000 (18:19 +0000)]
Treat lines starting with '#' as comments in PSFTP.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8325 cda61777-01e9-0310-a592-d414129be87e

15 years agoNew option to allow use of the local OS username for login to the remote side
jacob [Mon, 24 Nov 2008 17:51:42 +0000 (17:51 +0000)]
New option to allow use of the local OS username for login to the remote side
if we have no better ideas, with UI shamelessly stolen from Quest PuTTY.

Off by default, which effectively reverts the change to using the local
username by default that came in with GSSAPI support in r8138. Anyone wanting
seamless single sign-on will need to set the new option. (The previous
default behaviour was getting in the way in ad-hoc scenarios.)

Note that the PSCP and Unix-Plink behaviour of using the local username by
default have remained unchanged throughout; they are not affected by the new
option. Not sure if that's the Right Thing.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8324 cda61777-01e9-0310-a592-d414129be87e

15 years agoMake key file import robust against a PPK file that has somehow lost its
jacob [Sun, 23 Nov 2008 20:11:12 +0000 (20:11 +0000)]
Make key file import robust against a PPK file that has somehow lost its
final newline. From Debian bug #414784, based on a patch by Justin Pryzby.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8323 cda61777-01e9-0310-a592-d414129be87e

15 years agoAutoconfiscate GSS-API support, including support for manually disabling it.
ben [Sat, 22 Nov 2008 22:49:27 +0000 (22:49 +0000)]
Autoconfiscate GSS-API support, including support for manually disabling it.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8318 cda61777-01e9-0310-a592-d414129be87e

15 years agoChanges to make this compile on Solaris 9: use <gssapi/gssapi.h> rather
ben [Sat, 22 Nov 2008 22:06:42 +0000 (22:06 +0000)]
Changes to make this compile on Solaris 9: use <gssapi/gssapi.h> rather
than <gssapi/gssapi_krb5.h> and provide the OID for Kerberos 5 ourselves
(since it's a known constant).  I'm not sure this actually works on Solaris
yet, mind.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8317 cda61777-01e9-0310-a592-d414129be87e

15 years agoRevamp of the local X11 connection code. We now parse X display
simon [Mon, 17 Nov 2008 18:38:09 +0000 (18:38 +0000)]
Revamp of the local X11 connection code. We now parse X display
strings more rigorously, and then we look up the local X authority
data in .Xauthority _ourself_ rather than delegating to an external
xauth program. This is (negligibly) more efficient on Unix, assuming
I haven't got it wrong in some subtle way, but its major benefit is
that we can now support X authority lookups on Windows as well
provided the user points us at an appropriate X authority file in
the standard format. A new Windows-specific config option has been
added for this purpose.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8305 cda61777-01e9-0310-a592-d414129be87e

15 years agoAvoid freeing the backend in notify_remote_exit(), since that's
simon [Mon, 17 Nov 2008 18:36:27 +0000 (18:36 +0000)]
Avoid freeing the backend in notify_remote_exit(), since that's
called from within a backend function which will expect its own
backend pointer to still be valid on return. Instead, move all the
real functionality of notify_remote_exit() out into a GTK idle
function.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8304 cda61777-01e9-0310-a592-d414129be87e

15 years agoIn SSH packet logging mode, log SSH-2 packet sequence numbers, in
simon [Tue, 11 Nov 2008 07:47:27 +0000 (07:47 +0000)]
In SSH packet logging mode, log SSH-2 packet sequence numbers, in
both directions. We had a bug report yesterday about a Cisco router
sending SSH2_MSG_UNIMPLEMENTED and it wasn't clear for which packet;
logging the sequence numbers should make such problems much easier
to diagnose.

(In fact this logging fix wouldn't have helped in yesterday's case,
because the router also didn't bother to fill in the sequence number
field in the SSH2_MSG_UNIMPLEMENTED packet! This is a precautionary
measure against the next one of these problems.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8295 cda61777-01e9-0310-a592-d414129be87e

15 years agoImplement sk_addr_dup().
simon [Sat, 8 Nov 2008 16:58:55 +0000 (16:58 +0000)]
Implement sk_addr_dup().

git-svn-id: svn://svn.tartarus.org/sgt/putty@8294 cda61777-01e9-0310-a592-d414129be87e

15 years agoMove out of the SockAddr structure the mutable fields "ai" and
simon [Sat, 8 Nov 2008 16:45:45 +0000 (16:45 +0000)]
Move out of the SockAddr structure the mutable fields "ai" and
"curraddr", and turn "family" into a macro-derived property of the
other fields. The idea is that this renders SockAddrs immutable once
created, which should open up the possibility of duplicating and
reusing one without having to redo the actual DNS lookup.

I _hope_ I haven't broken anything. The new code architecture
contains several rather dubious-looking operations (namely the
arbitrary choice of the first returned address in functions like
sk_getaddr and sk_address_is_local - what if, for instance, a DNS
lookup returned a local and a non-local address?), but I think they
were functionally just as dubious beforehand and all this change has
done is to make them more obviously so to a reader.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8293 cda61777-01e9-0310-a592-d414129be87e

15 years agoPatch from Iain Patterson: fix crash on Windows when GSSAPI auth is attempted
jacob [Fri, 17 Oct 2008 20:55:08 +0000 (20:55 +0000)]
Patch from Iain Patterson: fix crash on Windows when GSSAPI auth is attempted
but fails for some reason (such as not having a tgt for the server's realm).

git-svn-id: svn://svn.tartarus.org/sgt/putty@8210 cda61777-01e9-0310-a592-d414129be87e

15 years agoRejig the Translation panel controls and documentation to remove the emphasis
jacob [Mon, 13 Oct 2008 22:34:57 +0000 (22:34 +0000)]
Rejig the Translation panel controls and documentation to remove the emphasis
on received data. Experiment and suggestion suggest that the character set
configuration applies equally to keystrokes sent to the server, or at least
that that's close enough to being true that we should document it as a first
approximation.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8209 cda61777-01e9-0310-a592-d414129be87e

15 years agoErroneously invisible index term.
jacob [Mon, 13 Oct 2008 22:16:25 +0000 (22:16 +0000)]
Erroneously invisible index term.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8208 cda61777-01e9-0310-a592-d414129be87e

15 years agoFix inability to save session on Unix when ~/.putty doesn't exist introduced
jacob [Sun, 12 Oct 2008 11:32:23 +0000 (11:32 +0000)]
Fix inability to save session on Unix when ~/.putty doesn't exist introduced
in r7934.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8204 cda61777-01e9-0310-a592-d414129be87e

15 years agoAhem. Make sure I NULL out any unused pointer field that I later
simon [Wed, 8 Oct 2008 18:09:56 +0000 (18:09 +0000)]
Ahem. Make sure I NULL out any unused pointer field that I later
plan to free if it isn't NULL.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8202 cda61777-01e9-0310-a592-d414129be87e

15 years agosshrsa.c now obeys the RFC793 Robustness Principle when it comes to
simon [Tue, 7 Oct 2008 17:48:59 +0000 (17:48 +0000)]
sshrsa.c now obeys the RFC793 Robustness Principle when it comes to
the ordering of the primes in a fully specified RSA private key:
when the key format typically has p > q, it will always output p > q
but be willing to tolerate p < q on input. (Inspired by seeing an
OpenSSH-format key file in the wild which had p < q, which I've
never seen before; I suspect a third-party application incautiously
generating the format.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8201 cda61777-01e9-0310-a592-d414129be87e

15 years agoThe "server refused our key" bit didn't link to the public-key auth chapter,
jacob [Thu, 25 Sep 2008 19:00:42 +0000 (19:00 +0000)]
The "server refused our key" bit didn't link to the public-key auth chapter,
which has some hints on server-side setup. Now it does.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8194 cda61777-01e9-0310-a592-d414129be87e

15 years agoDocument that PSFTP's "open" command allows an optional port number.
jacob [Sun, 21 Sep 2008 20:39:21 +0000 (20:39 +0000)]
Document that PSFTP's "open" command allows an optional port number.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8193 cda61777-01e9-0310-a592-d414129be87e

15 years agoFurther correction: on reflection, after examining all the call
simon [Tue, 16 Sep 2008 22:56:08 +0000 (22:56 +0000)]
Further correction: on reflection, after examining all the call
sites for uint64_make(), we _shouldn't_ attempt to preserve high
bits in the low-order argument; it turns out not to be what the call
sites want.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8185 cda61777-01e9-0310-a592-d414129be87e

15 years ago64-bit cleanliness in int64.c. This is all hideous; really I ought
simon [Tue, 16 Sep 2008 18:21:33 +0000 (18:21 +0000)]
64-bit cleanliness in int64.c. This is all hideous; really I ought
to be trying harder to find a 32-bit type rather than making a
uint64 structure out of two potentially 64-bit unsigned longs. And
really I ought to be using the C99 64-bit integers anyway if they're
available. But this should do for the moment.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8184 cda61777-01e9-0310-a592-d414129be87e

15 years agoTim Kosse points out that xfer_upload_gotpkt can return a negative
simon [Tue, 16 Sep 2008 12:48:38 +0000 (12:48 +0000)]
Tim Kosse points out that xfer_upload_gotpkt can return a negative
value on error, so the check at the call site shouldn't test for
exactly zero.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8183 cda61777-01e9-0310-a592-d414129be87e

15 years agoSome Windows keymaps, it turns out, don't translate the key
simon [Sun, 14 Sep 2008 15:11:42 +0000 (15:11 +0000)]
Some Windows keymaps, it turns out, don't translate the key
combination Ctrl + \ as the Ctrl-\ character. All of mine have, but
at least one laptop turns out not to. Do so explicitly.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8182 cda61777-01e9-0310-a592-d414129be87e

15 years agoIf we got a keyboard-interactive INFO_REQUEST with an "instruction" string but
jacob [Tue, 9 Sep 2008 20:36:40 +0000 (20:36 +0000)]
If we got a keyboard-interactive INFO_REQUEST with an "instruction" string but
no actual prompts, we weren't displaying the former, which was wrong. We
should now (although I haven't found a server to test it against).

git-svn-id: svn://svn.tartarus.org/sgt/putty@8172 cda61777-01e9-0310-a592-d414129be87e

15 years agoFix punctuation in the large print statements. In particular, one
simon [Mon, 1 Sep 2008 17:56:20 +0000 (17:56 +0000)]
Fix punctuation in the large print statements. In particular, one
semicolon which crept in in r8138 was causing a lot of the "make
install" implementation to be missing from Makefile.gtk.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8159 cda61777-01e9-0310-a592-d414129be87e

15 years agoGood grief. When I originally wrote the local proxy code two years
simon [Sun, 31 Aug 2008 21:45:39 +0000 (21:45 +0000)]
Good grief. When I originally wrote the local proxy code two years
ago, I apparently caused all data received from local proxies to be
unconditionally tagged as TCP Urgent. Most network backends ignore
this, but it's critical to the Telnet backend, which will ignore all
Urgent-marked data in the assumption that there's a SYNCH on its way
that it should wait for. Nobody has noticed in two years, presumably
meaning that nobody has ever tried to do Telnet over a local proxy
in that time.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8158 cda61777-01e9-0310-a592-d414129be87e

15 years agoColin Watson points out an apparently erroneous cast: Ssh_gss_name
simon [Sun, 31 Aug 2008 19:18:17 +0000 (19:18 +0000)]
Colin Watson points out an apparently erroneous cast: Ssh_gss_name
and gss_name_t are supposed to be congruent types, so a pointer to
one should never be cast to a non-indirect instance of the other.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8157 cda61777-01e9-0310-a592-d414129be87e

15 years agoMinor code cleanup: I just happened to be looking at this file for
simon [Sun, 31 Aug 2008 17:12:37 +0000 (17:12 +0000)]
Minor code cleanup: I just happened to be looking at this file for
other reasons and I noticed that the list of TELOPTs is given twice
and hence needs to be kept in sync. Replace with my now-standard
second-order-macro approach which allows the list to be maintained
in only one place.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8156 cda61777-01e9-0310-a592-d414129be87e

15 years agoFix for portfwd-addr-family: on Unix, when a tunnel is specified as "Auto"
jacob [Wed, 20 Aug 2008 22:21:04 +0000 (22:21 +0000)]
Fix for portfwd-addr-family: on Unix, when a tunnel is specified as "Auto"
(rather than IPv4 or IPv6-only; this is the default), try to open up listening
sockets on both address families, rather than (unhelpfully) just IPv6. (And
don't open one if the other can't be bound, in a nod to CVE-2008-1483.)
Based on a patch from Ben A L Jemmett.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8150 cda61777-01e9-0310-a592-d414129be87e

15 years agoJames has made the URL syntax for http://svn.tartarus.org/ more
simon [Mon, 11 Aug 2008 18:03:34 +0000 (18:03 +0000)]
James has made the URL syntax for svn.tartarus.org/ more
sensible. Update the FAQ link to it.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8142 cda61777-01e9-0310-a592-d414129be87e

15 years agoLink to pTerm, an SSH client for the iPhone that's apparently based on PuTTY.
jacob [Sun, 10 Aug 2008 14:28:51 +0000 (14:28 +0000)]
Link to pTerm, an SSH client for the iPhone that's apparently based on PuTTY.
Attempts at damage limitation from the name similarity with pterm.

Also try to refresh the ports section of the FAQ a bit.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8139 cda61777-01e9-0310-a592-d414129be87e

15 years agoInitial commit of GSSAPI Kerberos support.
owen [Sun, 10 Aug 2008 13:10:31 +0000 (13:10 +0000)]
Initial commit of GSSAPI Kerberos support.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8138 cda61777-01e9-0310-a592-d414129be87e

15 years agowww.winputty.com
jacob [Sat, 19 Jul 2008 16:41:52 +0000 (16:41 +0000)]
www.winputty.com

git-svn-id: svn://svn.tartarus.org/sgt/putty@8121 cda61777-01e9-0310-a592-d414129be87e

15 years agoAnother, subtly different version string for ssh2-bug-maxpkt, from Tim Kosse.
jacob [Fri, 18 Jul 2008 21:39:49 +0000 (21:39 +0000)]
Another, subtly different version string for ssh2-bug-maxpkt, from Tim Kosse.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8120 cda61777-01e9-0310-a592-d414129be87e

15 years agoAt least one version of gcc won't figure out that "clear" is never
simon [Thu, 17 Jul 2008 17:01:27 +0000 (17:01 +0000)]
At least one version of gcc won't figure out that "clear" is never
read uninitialised (because the only circumstance under which it
isn't initialised is when "update" is FALSE, in which case it isn't
read either). Placate it.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8119 cda61777-01e9-0310-a592-d414129be87e

15 years agoReplicate r8110 from PSFTP to PSCP, and various other minor patchery from
jacob [Fri, 11 Jul 2008 19:24:56 +0000 (19:24 +0000)]
Replicate r8110 from PSFTP to PSCP, and various other minor patchery from
Roger Picton.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8117 cda61777-01e9-0310-a592-d414129be87e

15 years agoPatch from Tim Kosse: check back->exitcode() in both loops on
simon [Sun, 6 Jul 2008 12:24:56 +0000 (12:24 +0000)]
Patch from Tim Kosse: check back->exitcode() in both loops on
ssh_sftp_loop_iteration(), not just one. Fixes exiting on a negative
response to the host key confirmation prompt on Windows (because
winsftp.c doesn't have the equivalent of uxsftp.c's no_fds_ok); on
Unix it worked already but gave a suboptimal error message, which is
fixed too by this patch.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8110 cda61777-01e9-0310-a592-d414129be87e

15 years agoPatch from Tim Kosse to make PSFTP remember to close files on
simon [Sun, 6 Jul 2008 12:11:34 +0000 (12:11 +0000)]
Patch from Tim Kosse to make PSFTP remember to close files on
various error conditions.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8109 cda61777-01e9-0310-a592-d414129be87e

15 years agoPatch from Aidan Kehoe to extend the Arabic shaping code to Urdu and
simon [Sun, 29 Jun 2008 09:14:26 +0000 (09:14 +0000)]
Patch from Aidan Kehoe to extend the Arabic shaping code to Urdu and
Persian, by adding some additional Unicode code points to the
shapetypes[] array.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8097 cda61777-01e9-0310-a592-d414129be87e

15 years agoCosmetic: use `appname' in more places, so that Unix PuTTYtel announces itself
jacob [Sun, 15 Jun 2008 13:26:08 +0000 (13:26 +0000)]
Cosmetic: use `appname' in more places, so that Unix PuTTYtel announces itself
thus.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8075 cda61777-01e9-0310-a592-d414129be87e

15 years agoExorcise beeps from the Colours pane in Gtk.
jacob [Sun, 15 Jun 2008 12:39:09 +0000 (12:39 +0000)]
Exorcise beeps from the Colours pane in Gtk.

The colour list box beeped at the user whenever it found that
something other than exactly one colour was selected. This seems to
happen implicitly in Gtk when the pane is changed. In Gtk1, this gave
you a beep whenever you left the Colours dialog after having selected
a colour from the list; in Gtk2, you additionally got a beep _every_
time you subsequently re-entered the Colours dialog (for reasons I
haven't investigated). Windows was unaffected.

Also, in Gtk (unlike Windows), it's possible for the user to go back
to the state where no items in the list box are selected at all.

For these reasons, stop beeping at the user, and instead blank the RGB
edit boxes as a hint that edits to them would be futile. (Really we
should be disabling them entirely, but the cross-platform edit
controls aren't up to that yet.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8074 cda61777-01e9-0310-a592-d414129be87e

15 years agoWork around a bug in early versions of GTK (which I'm still forced
simon [Wed, 11 Jun 2008 18:03:35 +0000 (18:03 +0000)]
Work around a bug in early versions of GTK (which I'm still forced
to use, gah) in which the "model" argument to
gtk_tree_selection_get_selected_rows() couldn't be NULL.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8069 cda61777-01e9-0310-a592-d414129be87e

15 years agoManfred Schwarb points out that scroll wheel support stopped working
simon [Tue, 10 Jun 2008 20:18:23 +0000 (20:18 +0000)]
Manfred Schwarb points out that scroll wheel support stopped working
with the switch to GTK2. This turns out to be because, where GTK1
represented the scroll wheel as mouse buttons 4 and 5 and generated
GdkEventButton when it was moved, GTK2 has moved wheel actions out
into a new event type GdkEventScroll which we were not handling. Now
we do, so scroll wheel support should be back in place.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8063 cda61777-01e9-0310-a592-d414129be87e

15 years agoManfred Schwarb also mentions that Alt+drag is captured by at least
simon [Sat, 7 Jun 2008 16:30:45 +0000 (16:30 +0000)]
Manfred Schwarb also mentions that Alt+drag is captured by at least
one well known window manager (KDE's); document that Shift+Alt+drag
is worth trying as a workaround.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8059 cda61777-01e9-0310-a592-d414129be87e

15 years agoManfred Schwarb points out that the README contains an outdated
simon [Sat, 7 Jun 2008 16:25:46 +0000 (16:25 +0000)]
Manfred Schwarb points out that the README contains an outdated
comment about GTK 2 not being supported.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8058 cda61777-01e9-0310-a592-d414129be87e

15 years agoAdd an include statement to Makefile.gtk that imports if present a
simon [Thu, 5 Jun 2008 17:06:39 +0000 (17:06 +0000)]
Add an include statement to Makefile.gtk that imports if present a
file called Makefile.local. This means that if you're compiling on a
platform that needs COMPAT definitions, you can put them in a local
file and not have to type them on the command line every time.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8045 cda61777-01e9-0310-a592-d414129be87e

15 years agoBah, there's always something. Check in missing files.
simon [Wed, 4 Jun 2008 23:12:30 +0000 (23:12 +0000)]
Bah, there's always something. Check in missing files.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8040 cda61777-01e9-0310-a592-d414129be87e

15 years agoAt last, merge the putty-gtk2 branch back into the trunk!
simon [Wed, 4 Jun 2008 23:05:48 +0000 (23:05 +0000)]
At last, merge the putty-gtk2 branch back into the trunk!

git-svn-id: svn://svn.tartarus.org/sgt/putty@8037 cda61777-01e9-0310-a592-d414129be87e

15 years agoBeen meaning to do this for years: introduce a configuration option
simon [Sun, 1 Jun 2008 11:16:32 +0000 (11:16 +0000)]
Been meaning to do this for years: introduce a configuration option
to manually tweak the host name and port number under which the SSH
host key is read and written.

I've put it in the cross-platform Connection panel. Partly under the
flimsy pretext that other backends _can_ use it if they so wish (and
in fact it overrides the host name for title-bar purposes in all
network backends, though it has no other effect in anything but
SSH); but mostly because the SSH panel was too full already :-)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8033 cda61777-01e9-0310-a592-d414129be87e

15 years agoApparently Vista's printf-like functions don't support %n by default.
jacob [Sat, 31 May 2008 17:22:29 +0000 (17:22 +0000)]
Apparently Vista's printf-like functions don't support %n by default.
We could explicitly re-enable %n, but we only use it in one place, so take
the path of least resistance and remove that single instance. This stops
dupvprintf() getting stuck in a loop (a behaviour that's caused by a workaround
for a broken libc).

<http://msdn.microsoft.com/en-us/library/ms175782(VS.80).aspx>

git-svn-id: svn://svn.tartarus.org/sgt/putty@8030 cda61777-01e9-0310-a592-d414129be87e

15 years agoUpdate for `win-randseed-location' fix.
jacob [Sat, 31 May 2008 17:11:16 +0000 (17:11 +0000)]
Update for `win-randseed-location' fix.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8029 cda61777-01e9-0310-a592-d414129be87e

15 years agoOS X Leopard, it turns out, has a new and exciting strategy for
simon [Wed, 28 May 2008 19:23:57 +0000 (19:23 +0000)]
OS X Leopard, it turns out, has a new and exciting strategy for
addressing X displays. Update PuTTY's display-name-to-Unix-socket-
path translation code to cope with it, thus causing X forwarding to
start working again on Leopard.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8020 cda61777-01e9-0310-a592-d414129be87e

15 years agoUpdate the FAQ to state more explicitly that PuTTY contains no
simon [Wed, 21 May 2008 09:48:40 +0000 (09:48 +0000)]
Update the FAQ to state more explicitly that PuTTY contains no
OpenSSL code.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8004 cda61777-01e9-0310-a592-d414129be87e

16 years agoMention Vista.
jacob [Sat, 26 Apr 2008 18:45:06 +0000 (18:45 +0000)]
Mention Vista.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7993 cda61777-01e9-0310-a592-d414129be87e

16 years agoUtterly hideous new approach to extracting install-sh from the
simon [Fri, 11 Apr 2008 13:28:38 +0000 (13:28 +0000)]
Utterly hideous new approach to extracting install-sh from the
autoconf/automake edifice, since my previous approach of guessing
its pathname turns out not to work on at least one kind of system.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7984 cda61777-01e9-0310-a592-d414129be87e

16 years agoFix misleading parameter name.
jacob [Sat, 5 Apr 2008 12:26:49 +0000 (12:26 +0000)]
Fix misleading parameter name.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7970 cda61777-01e9-0310-a592-d414129be87e

16 years agoFor convenience of debugging, and perhaps some real convenience at
simon [Sat, 22 Mar 2008 12:01:16 +0000 (12:01 +0000)]
For convenience of debugging, and perhaps some real convenience at
some point too: introduce a bunch of environment variables which can
override Unix PuTTY's usual idea of where to find its dotfiles.
Setting PUTTYDIR moves the entire ~/.putty directory; setting
PUTTYSESSIONS, PUTTYSSHHOSTKEYS or PUTTYRANDOMSEED move specific
things within that directory.

While I'm here, also be prepared to fall back to password file
lookups if $HOME is undefined (though we still use $HOME in
preference when it is defined, because that's polite and useful).
Also, on general principles, tweak the make_filename() function
prototype so it doesn't rely on fixed-size buffers.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7934 cda61777-01e9-0310-a592-d414129be87e

16 years agoUnder OS X Leopard, we seem not to consistently get the Tab key
simon [Sun, 9 Mar 2008 15:32:20 +0000 (15:32 +0000)]
Under OS X Leopard, we seem not to consistently get the Tab key
translated for us. Be prepared to do it manually as a fallback.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7913 cda61777-01e9-0310-a592-d414129be87e

16 years agoFix a cursor positioning infelicity.
simon [Fri, 7 Mar 2008 18:30:37 +0000 (18:30 +0000)]
Fix a cursor positioning infelicity.

The scenario: I start a small, say 80x24, pterm. I do some work in
it, generating plenty of scrollback, and eventually I `less' a file.
`less' switches to the alt screen. Then I want more vertical space
to look at the file, so I enlarge the window to more like 80x60.
When I quit `less' and switch back to the primary screen, some
scrollback has been pulled down into the screen, as expected - but
the saved _cursor position_ is still at line 24, not at the bottom
of the new terminal where the prompt it goes with has moved to.

Solution: term_size() should adjust the alt-screen saved cursor
positions as well as the normal cursor position.

(Curiously, the problem doesn't happen on my home Debian box, even
without this fix. It happens on my RH9 box at work, though.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@7911 cda61777-01e9-0310-a592-d414129be87e

16 years agoIt's a new year (and we've even made a code checkin).
jacob [Sun, 24 Feb 2008 00:16:29 +0000 (00:16 +0000)]
It's a new year (and we've even made a code checkin).

git-svn-id: svn://svn.tartarus.org/sgt/putty@7883 cda61777-01e9-0310-a592-d414129be87e

16 years agoAttempt to clarify what the various IP version selection options do.
jacob [Sat, 23 Feb 2008 23:56:22 +0000 (23:56 +0000)]
Attempt to clarify what the various IP version selection options do.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7882 cda61777-01e9-0310-a592-d414129be87e

16 years agoTunnels: more explicit link from introductory to reference section.
jacob [Sat, 23 Feb 2008 22:00:48 +0000 (22:00 +0000)]
Tunnels: more explicit link from introductory to reference section.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7880 cda61777-01e9-0310-a592-d414129be87e

16 years agoAha, _that's_ why I've been periodically getting blocking-write
simon [Thu, 21 Feb 2008 09:18:24 +0000 (09:18 +0000)]
Aha, _that's_ why I've been periodically getting blocking-write
problems using Unix PuTTY port forwarding. Sockets we create by
connect() are immediately set into nonblocking mode by fcntl, but
sockets we create by accept() were not. This trivial fix should help.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7864 cda61777-01e9-0310-a592-d414129be87e

16 years agoUpdate web-SVN URL for kh2reg.py.
jacob [Sun, 10 Feb 2008 14:00:51 +0000 (14:00 +0000)]
Update web-SVN URL for kh2reg.py.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7843 cda61777-01e9-0310-a592-d414129be87e