1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +00:00
Commit Graph

3376 Commits

Author SHA1 Message Date
Jacob Nevins
62cad154f4 Fix a Windows-specific GSS crash introduced in r8326, which (again) apparently
triggers in failure cases. Patch by Iain Patterson.

[originally from svn r8336]
[r8326 == 81dafd906e]
2008-11-26 14:11:49 +00:00
Ben Harris
86c183f8e8 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.

[originally from svn r8334]
2008-11-26 12:49:25 +00:00
Ben Harris
e5eabee3c0 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.

[originally from svn r8333]
2008-11-25 22:11:17 +00:00
Simon Tatham
8b45210f63 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.

[originally from svn r8332]
2008-11-25 18:54:05 +00:00
Jacob Nevins
01a7673ae9 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.

[originally from svn r8331]
[r8305 == ca6fc3a4da]
2008-11-25 18:43:52 +00:00
Jacob Nevins
caf4100ff3 I think sshgss.h needs puttyps.h for Ssh_gss_buf. Makes it compile for Windows,
anyway.

[originally from svn r8327]
2008-11-24 23:56:55 +00:00
Ben Harris
81dafd906e 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.

[originally from svn r8326]
2008-11-24 23:44:55 +00:00
Jacob Nevins
a6cbfd974d Treat lines starting with '#' as comments in PSFTP.
[originally from svn r8325]
2008-11-24 18:19:55 +00:00
Jacob Nevins
dc896b79af 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.

[originally from svn r8324]
[r8138 == de5dd9d65c]
2008-11-24 17:51:42 +00:00
Jacob Nevins
c9326ad81b 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.

[originally from svn r8323]
2008-11-23 20:11:12 +00:00
Ben Harris
7da40ece76 Autoconfiscate GSS-API support, including support for manually disabling it.
[originally from svn r8318]
2008-11-22 22:49:27 +00:00
Ben Harris
f45bfdbf1f 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.

[originally from svn r8317]
2008-11-22 22:06:42 +00:00
Simon Tatham
ca6fc3a4da 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.

[originally from svn r8305]
2008-11-17 18:38:09 +00:00
Simon Tatham
0cef8a897d 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.

[originally from svn r8304]
2008-11-17 18:36:27 +00:00
Simon Tatham
3a3abd211b 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.)

[originally from svn r8295]
2008-11-11 07:47:27 +00:00
Simon Tatham
59691d28a3 Implement sk_addr_dup().
[originally from svn r8294]
2008-11-08 16:58:55 +00:00
Simon Tatham
6e2501be77 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.

[originally from svn r8293]
2008-11-08 16:45:45 +00:00
Jacob Nevins
50abe3567b 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).

[originally from svn r8210]
2008-10-17 20:55:08 +00:00
Jacob Nevins
02f7ccbb96 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.

[originally from svn r8209]
2008-10-13 22:34:57 +00:00
Jacob Nevins
df63143752 Erroneously invisible index term.
[originally from svn r8208]
2008-10-13 22:16:25 +00:00
Jacob Nevins
e415865e58 Fix inability to save session on Unix when ~/.putty doesn't exist introduced
in r7934.

[originally from svn r8204]
[r7934 == 087adb167e]
2008-10-12 11:32:23 +00:00
Simon Tatham
ff294f4ffd Ahem. Make sure I NULL out any unused pointer field that I later
plan to free if it isn't NULL.

[originally from svn r8202]
2008-10-08 18:09:56 +00:00
Simon Tatham
a59c4e9486 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.)

[originally from svn r8201]
2008-10-07 17:48:59 +00:00
Jacob Nevins
c26dbd0337 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.

[originally from svn r8194]
2008-09-25 19:00:42 +00:00
Jacob Nevins
b74920fe82 Document that PSFTP's "open" command allows an optional port number.
[originally from svn r8193]
2008-09-21 20:39:21 +00:00
Simon Tatham
338cb9fa0d 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.

[originally from svn r8185]
2008-09-16 22:56:08 +00:00
Simon Tatham
bdeebc992f 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.

[originally from svn r8184]
2008-09-16 18:21:33 +00:00
Simon Tatham
2a0cf16c33 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.

[originally from svn r8183]
2008-09-16 12:48:38 +00:00
Simon Tatham
9c6a1127b4 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.

[originally from svn r8182]
2008-09-14 15:11:42 +00:00
Jacob Nevins
211fdb9f46 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).

[originally from svn r8172]
2008-09-09 20:36:40 +00:00
Simon Tatham
922ae38450 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.

[originally from svn r8159]
[r8138 == de5dd9d65c]
2008-09-01 17:56:20 +00:00
Simon Tatham
4829802c43 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.

[originally from svn r8158]
2008-08-31 21:45:39 +00:00
Simon Tatham
0251dbf13e 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.

[originally from svn r8157]
2008-08-31 19:18:17 +00:00
Simon Tatham
c87697a00f 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.

[originally from svn r8156]
2008-08-31 17:12:37 +00:00
Jacob Nevins
6e2bd31d32 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.

[originally from svn r8150]
[this svn revision also touched putty-wishlist]
2008-08-20 22:21:04 +00:00
Simon Tatham
ea09aca2d1 James has made the URL syntax for http://svn.tartarus.org/ more
sensible. Update the FAQ link to it.

[originally from svn r8142]
2008-08-11 18:03:34 +00:00
Jacob Nevins
72176f56f1 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.

[originally from svn r8139]
[this svn revision also touched putty-website]
2008-08-10 14:28:51 +00:00
Owen Dunn
de5dd9d65c Initial commit of GSSAPI Kerberos support.
[originally from svn r8138]
2008-08-10 13:10:31 +00:00
Jacob Nevins
0677c73c1a www.winputty.com
[originally from svn r8121]
[this svn revision also touched putty-website,putty-wishlist]
2008-07-19 16:41:52 +00:00
Jacob Nevins
d6a2f57214 Another, subtly different version string for ssh2-bug-maxpkt, from Tim Kosse.
[originally from svn r8120]
[this svn revision also touched putty-wishlist]
2008-07-18 21:39:49 +00:00
Simon Tatham
853361c5b0 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.

[originally from svn r8119]
2008-07-17 17:01:27 +00:00
Jacob Nevins
a071dfdcd2 Replicate r8110 from PSFTP to PSCP, and various other minor patchery from
Roger Picton.

[originally from svn r8117]
[r8110 == e01df1da9f]
2008-07-11 19:24:56 +00:00
Simon Tatham
e01df1da9f 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.

[originally from svn r8110]
2008-07-06 12:24:56 +00:00
Simon Tatham
7edbe42d12 Patch from Tim Kosse to make PSFTP remember to close files on
various error conditions.

[originally from svn r8109]
2008-07-06 12:11:34 +00:00
Simon Tatham
3c89f124db 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.

[originally from svn r8097]
2008-06-29 09:14:26 +00:00
Jacob Nevins
f405259798 Cosmetic: use `appname' in more places, so that Unix PuTTYtel announces itself
thus.

[originally from svn r8075]
2008-06-15 13:26:08 +00:00
Jacob Nevins
6e447b9f18 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.)

[originally from svn r8074]
2008-06-15 12:39:09 +00:00
Simon Tatham
189c9a2a08 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.

[originally from svn r8069]
2008-06-11 18:03:35 +00:00
Simon Tatham
65ae6ba3d2 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.

[originally from svn r8063]
2008-06-10 20:18:23 +00:00
Simon Tatham
322df43e4d 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.

[originally from svn r8059]
2008-06-07 16:30:45 +00:00