Граф коммитов

71 Коммитов

Автор SHA1 Сообщение Дата
Simon Tatham e9adbd2473 Clarify the comment at the top of scp.c to make the licensing
situation more explicit.

[originally from svn r1263]
2001-09-10 08:39:37 +00:00
Simon Tatham b5dcdf7fc8 Fix potential float screwup in scp percentage indicator. (Don't
compute (100*a)/b. Instead compute 100*(a/b), because that way
there's no chance that 100*a will become inexact enough to fail to
yield 100 when a==b.)

[originally from svn r1254]
2001-09-08 15:16:30 +00:00
Simon Tatham 3c74c01014 Pedantry patch from RDB: sanitise header use, correct one comment
and remove an unused variable.

[originally from svn r1243]
2001-09-07 22:49:17 +00:00
Simon Tatham b27c27f657 When pscp in SFTP mode does client-side matching of a server-side
wildcard, it's polite to let the user know if the wildcard didn't
match any file names.

[originally from svn r1227]
2001-09-05 19:33:12 +00:00
Simon Tatham 1a1ed1ff71 Fix segfault (should free act.buf not act.name, because the latter
might not point at the start of the former). Cheers Minefield :-)

[originally from svn r1224]
2001-08-29 08:56:26 +00:00
Simon Tatham c9326c240e stripslashes() should have been dealing with colons as well. I don't
_think_ there was an exploit (even if the server sends "c:foobar",
the client will not attempt to create "c:foobar"; instead it will
try to create ".\c:foobar" which will fail), but it's as well to be
sure.

[originally from svn r1223]
2001-08-28 12:26:16 +00:00
Simon Tatham ea27f048f9 Fix various small compiler warnings, mostly unused local variables
[originally from svn r1218]
2001-08-28 08:08:43 +00:00
Simon Tatham 448c1a085a Finally tighten up the server-side wildcard security hole, the
_right_ way. (SSWs are disabled by default and can be re-enabled
using `-unsafe', meaning that pscp will _never_ do anything
unexpected to your local file system unless you explicitly give
consent. The sftp-based variant will work fine because the
corresponding mechanism is _not_ unsafe.)

[originally from svn r1212]
2001-08-27 15:02:52 +00:00
Simon Tatham a8e0abbf28 Fix tiny bug in new sftp-mode wildcards: when there wasn't a leading
path component (just `host:*' rather than `host:directory/*') there
was trouble.

[originally from svn r1211]
2001-08-27 14:51:31 +00:00
Simon Tatham e6c8913093 Minor modification: in remote->local non-recursive mode matching a
wildcard, we don't abandon ship completely if the wildcard matches a
directory; we just warn and carry on with the rest.

[originally from svn r1210]
2001-08-27 10:24:55 +00:00
Simon Tatham 0da98d052d Implemented a simple wildcard matching engine, and used it to
restore remote wildcard capability in sftp-style PSCP.

[originally from svn r1209]
2001-08-27 10:17:41 +00:00
Simon Tatham ff9a038cdd PSCP now uses the modern SFTP protocol if it can, and falls back to
scp1 if it can't. Currently not very tested - I checked it in as
soon as it completed a successful recursive copy in both directions.
Also, one known bug: you can't specify a remote wildcard, because by
the nature of SFTP we'll need to implement the wildcard engine on
the client side. I do intend to do this (and use the same wildcard
engine in PSFTP as well) but I haven't got round to it yet.

[originally from svn r1208]
2001-08-26 18:32:28 +00:00
Simon Tatham 605fa91201 Arrgh; yet again I make my security checking too draconian to
actually get things done. I'm sure this is the second time I've
checked in this mistake :-/ Still, this time I've got right to the
bottom of the cause, and commented it clearly. Phew.

[originally from svn r1207]
2001-08-26 15:45:55 +00:00
Simon Tatham ebde798f13 Oops. ^X^S comes _before_ `cvs commit'. Two more diagnostics gone :-)
[originally from svn r1206]
2001-08-26 15:32:51 +00:00
Simon Tatham 306a13c025 Further tightening up in PSCP. Fixed a couple more holes whereby a
malicious SCP server could have written to areas other than the ones
the user requested; cleared up buffer overruns everywhere. Hopefully
we now do not use arbitrary buffer limits _anywhere_.

[originally from svn r1205]
2001-08-26 15:31:29 +00:00
Simon Tatham f7f96066f7 Preparatory work for allowing PSCP to work over SFTP as well as old-
style scp1. I've built a layer of abstraction covering all the gory
details of the old scp network protocol.

[originally from svn r1204]
2001-08-26 14:53:51 +00:00
Simon Tatham 44c4ee79e6 Jacob's patch for a drag-list to select SSH ciphers. Heavily hacked
by me to make the drag list behaviour slightly more intuitive.
WARNING: DO NOT LOOK AT pl_itemfrompt() IF YOU ARE SQUEAMISH.

[originally from svn r1199]
2001-08-25 19:33:33 +00:00
Simon Tatham c87fa98d09 Extensive changes that _should_ fix the socket buffering problems,
by ceasing to listen on input channels if the corresponding output
channel isn't accepting data. Has had basic check-I-didn't-actually-
break-anything-too-badly testing, but hasn't been genuinely tested
in stress conditions (because concocting stress conditions is non-
trivial).

[originally from svn r1198]
2001-08-25 17:09:23 +00:00
Simon Tatham 78a37a5122 Be prepared to print spaces at the end of a statistics line in case
the previously printed line was longer. Avoids multiple trailing
percents.

[originally from svn r1135]
2001-05-19 13:41:18 +00:00
Simon Tatham 52a688abd1 The host-key-unknown prompt now offers the same three options as the
host-key-changed prompt: update-cache-and-connect, connect-without-
updating-cache, and abandon-connection. (Previously the middle one
was missing.)

[originally from svn r1122]
2001-05-13 14:11:49 +00:00
Simon Tatham fb473cc16c Placate gcc's `-Wall' warnings.
[originally from svn r1121]
2001-05-13 14:02:28 +00:00
Simon Tatham e45f75a2be Attempt to report the error condition right when an SCP connection
with a pre-supplied password fails to authenticate.

[originally from svn r1114]
2001-05-13 11:15:16 +00:00
Simon Tatham c2eb57a034 `realhost', passed back from all the backend init functions, was
scoped within those functions. It's now dynamically allocated.

[originally from svn r1108]
2001-05-09 14:01:15 +00:00
Simon Tatham 3730ada5ce Run entire source base through GNU indent to tidy up the varying
coding styles of the various contributors! Woohoo!

[originally from svn r1098]
2001-05-06 14:35:20 +00:00
Simon Tatham d27112ea87 Put the \001 prefix back on scp error messages when they're sent to
the server. (Not sure _why_ they're sent to the server; scp is
weird.) It may be pointless when sent to the screen, which is why I
removed it, but it's extremely pointful on the wire :-(

[originally from svn r1090]
2001-04-28 17:18:47 +00:00
Simon Tatham b7844a20af Add some fflushes to make it easier for piped programs to talk to
plink and pscp

[originally from svn r1078]
2001-04-28 08:42:06 +00:00
Simon Tatham 55659a959f ssh_get_password has become ssh_get_line, so it can handle usernames
as well. This should fix the multiple-reads-on-stdin bug in plink.

[originally from svn r994]
2001-03-12 15:31:53 +00:00
Simon Tatham 1de4d29392 Remove -gui from the command-line help in pscp, because it's an
internal option only.

[originally from svn r903]
2001-01-27 15:51:41 +00:00
Simon Tatham 23dbd2d8f5 Fix build errors in PSCP after line discipline upheaval
[originally from svn r898]
2001-01-26 09:33:12 +00:00
Simon Tatham 7a79df8fe6 Rethink the whole line discipline architecture. Instead of having
multiple switchable line disciplines, we now have a single unified
one which changes its behaviour based on option settings. Each
option setting can be suggested by the back end and/or the terminal
handler, and can be forcibly overridden by the configuration. Local
echo and local line editing are separate, independently switchable,
options.

[originally from svn r895]
2001-01-24 14:08:20 +00:00
Simon Tatham fc478e6cad Turn a rogue malloc to smalloc
[originally from svn r840]
2001-01-07 15:27:19 +00:00
Simon Tatham 826a464682 Patch from Christian Biesinger: pscp guesses your Windows username by default
[originally from svn r836]
2001-01-07 13:31:49 +00:00
Simon Tatham d5240d4157 Make memory management uniform: _everything_ now goes through the
smalloc() macros and thence to the safemalloc() functions in misc.c.
This should allow me to plug in a debugging allocator and track
memory leaks and segfaults and things.

[originally from svn r818]
2000-12-12 10:33:13 +00:00
Simon Tatham b9c07ac266 Prevent wildcards in source specs from matching . or ..
[originally from svn r813]
2000-11-30 21:35:28 +00:00
Simon Tatham 694fd2eedf Fix another silly segfault
[originally from svn r800]
2000-11-15 11:13:22 +00:00
Simon Tatham 6928fbb1e3 Back off a bit of that vulnerability fix, which was breaking `pscp
host:wildcard* .' and suchlike.

[originally from svn r790]
2000-10-31 09:29:05 +00:00
Simon Tatham 2cc663cafb Couple of fixes for pscp's GUI interface mode
[originally from svn r778]
2000-10-30 09:54:10 +00:00
Simon Tatham 2c9c817895 Misc bugfixes
[originally from svn r771]
2000-10-27 09:17:19 +00:00
Simon Tatham d0635e9d39 Plink and PSCP were failing to load the `Default Settings' options
when connecting to an arbitrary hostname. In particular, setting a
default user name didn't work. Now it does.

[originally from svn r747]
2000-10-23 12:20:53 +00:00
Simon Tatham bbbda4110b Created a shiny new abstraction for the socket handling. Has many
advantages:
 - protocol modules can call sk_write() without having to worry
   about writes blocking, because blocking writes are handled in the
   abstraction layer and retried later.
 - `Lost connection while sending' is a thing of the past.
 - <winsock.h> is no longer needed in most modules, because
   "putty.h" doesn't have to declare `SOCKET' variables any more,
   only the abstracted `Socket' type.
 - select()-equivalent between multiple sockets will now be handled
   sensibly, which opens the way for things like SSH port
   forwarding.

[originally from svn r744]
2000-10-23 10:32:37 +00:00
Simon Tatham 882f653081 Ooh. Actually, that vulnerability is further-reaching than I
thought. As well as the ".." attack in recursive copies, the name
sent by the client was also trusted in a single-file implicit-
destination copy such as "pscp host:foo .". (The result was ./foo,
where foo is what the server claimed the file was rather than what
the user asked for. I think it's not unreasonable that if the user
requests file `foo' from the host, he should get the result in a
file called `foo' no matter what the host thinks.)

[originally from svn r743]
2000-10-21 17:52:54 +00:00
Simon Tatham b78c5699d1 Fix a potential vulnerability in incoming `pscp -r'. The server
sends filenames of things in the directory being copied. A malicious
server could have sent, for example, "..\..\windows\system\foo.dll"
and overwritten something crucial. The filenames are now vetted to
ensure they don't contain slashes or backslashes.

[originally from svn r742]
2000-10-21 17:36:44 +00:00
Simon Tatham e32603347c Introduce a sane interface function, from_backend(), for backends to
use when they have data from the network. Replaces the utterly daft
inbuf / inbuf_head / term_out() interface, which only made sense
when feeding to terminal.c. (terminal.c now implements
from_backend() as a small function that gateways to the old
interface.)

As a side effect, from_backend() also has an `is_stderr' parameter,
so scp can once again separate the server's pronouncements on stderr
from the actual protocol progress on stdout.

[originally from svn r729]
2000-10-20 13:51:46 +00:00
Simon Tatham 8e7a270f7f Miscellaneous cleanups and reorgs in preparation for building
PuTTYgen. In particular, moved self-managing controls stuff out of
windlg.c into the new and reusable winctrls.c.

[originally from svn r714]
2000-10-18 15:36:32 +00:00
Simon Tatham b584238186 Create settings.c and move the load/save session code out of
windlg.c into it. Allows plink and pscp to no longer link with
windlg.c, meaning they lose some of the sillier stub functions and
also can provide a console-based form of verify_ssh_host_key().

[originally from svn r683]
2000-10-06 13:21:36 +00:00
Simon Tatham 7b6106d62a Add a parameter to write_clip() so that windlg.c need not call term_deselect
[originally from svn r681]
2000-10-06 12:32:25 +00:00
Simon Tatham 8c169b0c6d Tighten up use of "static" throughout. Module-internal things should NOT
be exported willy-nilly. It encourages people to use them.

[originally from svn r677]
2000-10-06 11:42:30 +00:00
Simon Tatham e424247802 Fix a typo; thanks to Al Sutton
[originally from svn r667]
2000-10-04 10:02:25 +00:00
Simon Tatham 0fed43e9f4 Remove the special hooks in ssh.c for pscp. pscp now uses the standard
interface to the outside of the ssh module. This means pscp now works
without change in SSH2.

[originally from svn r638]
2000-09-27 09:36:39 +00:00
Simon Tatham cbdd9b3ac5 Enable copying the Event Log
[originally from svn r619]
2000-09-22 14:46:26 +00:00