- Jun 12, 2021
-
-
Simon Tatham authored
An embarrassing braino of && for || produced a boolean expression that could never evaluate true. (cherry picked from commit 8245510a)
-
Simon Tatham authored
Less than 12 hours after 0.75 went out of the door, a user pointed out that enabling the 'Use system colours' config option causes an immediate NULL-dereference crash. The reason is because a chain of calls from term_init() ends up calling back to the Windows implementation of the palette_get_overrides() method, which responds by trying to call functions on the static variable 'term' in window.c, which won't be initialised until term_init() has returned. Simple fix: palette_get_overrides() is now given a pointer to the Terminal that it should be updating, because it can't find it out any other way. (cherry picked from commit 571fa338)
-
- May 02, 2021
-
-
Simon Tatham authored
Since the previous commit is causing an RC2 build of 0.75 anyway, let's take the opportunity to bring in updates to the docs from main, so that the release will have the most up-to-date version available. This is a combined cherry-pick of: f6142ba2 7c1bea59 f5d1d4ce
-
Simon Tatham authored
Jacob spots that on Windows, current PuTTY is not compatible with 0.74, if one of them acts as a connection sharing upstream and the other as a downstream. That's because commit 1344d4d1 accidentally changed the hash preimage in capi_obfuscate_string() so that it no longer had an SSH-like string length field at the front. So the two versions of PuTTY will expect the named pipe to have a different pathname, and so they won't be able to find each other. Interoperation between PuTTY versions is not the most important use case of connection sharing - surely the typical user will invoke it by activating the same session twice, or by using Duplicate Session. But it was never intended to deliberately _not_ work, so let's fix it before 0.75 goes out, so that at least the incompatible behaviour will only ever have appeared in development snapshots.
- Apr 27, 2021
-
-
Simon Tatham authored
I've recently been coming round in general to the idea that -Werror is fine for developers and centralised binary builds, but has too many unanticipated failure modes in the field (with everyone's different versions of compilers, headers etc) to leave turned on for the 'just download and build' source tarball that's supposed to work everywhere. On main, I've already made the change to hide it behind a cmake 'strict' setting. In particular, I've just done pre-release build tests with various versions of GTK, which reminded me that the GTK 2 installation on Ubuntu 20.04 fails to build at -Werror, because GTK's own header files have a warning-generating inconsistency. (glib/gtypes.h declares GTimeVal as deprecated, and then gtk/gtktooltips.h uses it anyway.) Clearly this is the kind of thing that ought not to break the build of a client application!
-
- Apr 25, 2021
-
-
Simon Tatham authored
GetFileType() takes a HANDLE, not a pathname. So passing it the pathname of the agent named pipe would never have worked at all. I hadn't noticed, because the only call to that function logical-ORs its return value with that of wm_copydata_agent_exists(), and the latter _does_ work. So if you're running true Pageant, which presents both IPC interfaces, then there's no problem. But if a Pageant-emulating system wanted to present only the named-pipe version, then we wouldn't have detected it. Now we should do.
-
- Apr 24, 2021
-
-
Simon Tatham authored
I just discovered that they weren't happening, and the reason why is thoroughly annoying. Details are in the long comment I've added to the WM_VSCROLL handler in WndProc, but the short version is that when you interactively drag the terminal window's scrollbar, a subsidiary message loop is launched by DefWndProc, causing all our timer events to go missing until the user lets go of the scrollbar again. So we have to manually update the terminal window on scroll events, because the normal system is out of action. I assume this changed behaviour round about the big rework of terminal updating in February. Good job I spotted it just _before_ 0.75, and not just after!
-
Simon Tatham authored
Previously, 'make install' would install psusan itself in .../bin, but not install psusan.1 in .../share/man/man1. That's not a sensible combination. Either it's a test utility so we should install neither, or it's a fully supported official utility so we should install both. It's the latter. Man page is now installed, along with the binary.
-
- Apr 23, 2021
-
-
Simon Tatham authored
I've just spent the afternoon playing with it (rather belatedly - this is the first time I've tried it out since it was first announced!), and quickly decided that on the one hand it looks quite useful, but on the other hand, running it in a Windows console is not for me and I'd prefer to talk to it via PuTTY and psusan, for nicer copy-paste controls and the ability to forward Pageant into it. That turns out to be very easy and (I think) useful, so in it goes as another psusan use case.
-
- Apr 22, 2021
-
-
Jacob Nevins authored
As we do in other similar situations. (The resulting passphrase dialog is annoyingly unsymmetric, but probably less annoying than a Help button which does nothing, and the situation shouldn't arise with our standard builds.)
-
Simon Tatham authored
Suggested by Jacob: if this dialog box is going to pop up _unexpectedly_ - perhaps when people have momentarily forgotten they're even running Pageant, or at least forgotten they added a key encrypted,, or maybe haven't found out yet that their IT installed it - then it could usefully come with a help button that pops up further explanation of what the dialog box means, and from which you can find your way to the rest of the help.
-
Simon Tatham authored
I continue to believe that there's nothing I can (or should) do about the fact that on Windows, Pageant's async passphrase prompt dialog box doesn't automatically get the input focus when it pops up in response to a request received via invisible IPC. However, one thing I can do is add some text to the box that _warns_ people about it, so that at least there's some kind of suggestion that you should get into the habit of clicking on the passphrase prompt before typing your passphrase into it. (I would be less concerned about all of this if it weren't for the fact that focus is surprisingly non-obvious on Windows 10, at least on the machine I have here. When the window doesn't have focus, the title bar has the same background colour, and only the text is fainter. And perhaps more confusingly, the cursor in the edit box still flashes! That fooled _me_ a few times to begin with.)
-
- Apr 21, 2021
-
-
Simon Tatham authored
The old behaviour is still present under an ifdef based on _MSC_VER, so it should still appear in the w32old builds we're still making. (cherry picked from commit 49b91bc1)
-
- Apr 20, 2021
-
-
Jacob Nevins authored
(And remove another reference to connection type 'buttons'.)
-
Jacob Nevins authored
-
Jacob Nevins authored
-
Jacob Nevins authored
-
Jacob Nevins authored
-
Jacob Nevins authored
-
Jacob Nevins authored
No functional change, probably.
-
- Apr 19, 2021
-
-
Jacob Nevins authored
PuTTYgen and its documentation are pretty consistent about calling their encryption key a 'passphrase', as opposed to a 'password' supplied directly to a server; but the Argon2 parameters UI reverted to 'password hash', which seemed unecessarily confusing. I think it's better to use the term 'passphrase' consistently in the UI. (People who are used to Argon2 being called a 'password hash' can probably deal.) This required tweaking the coordinates of the Windows PuTTYgen UI.
-
Jacob Nevins authored
Instead of 'Kb', which could be misread as 'Kbit'.
-
Jacob Nevins authored
-
Jacob Nevins authored
-
Jacob Nevins authored
-
- Apr 17, 2021
-
-
Simon Tatham authored
If we're publishing the server, then we should say something about the fact that this option exists to talk to it. Also, if the option exists on the front page at all in a released version of PuTTY, it behooves us to document it slightly more usefully than just a handwave at 'this is specialist and experimental'.
-
Simon Tatham authored
I've been using and testing it for a while now, in various circumstances, and I think it's reasonably robust. And if a release version of PuTTY is going to have an option on the front page that basically exists to talk to psusan, it seems silly to then turn round and say "But you can't have psusan itself, so nerrr". So let's not. Also, Jacob points out that the sooner we encourage distro maintainers to package psusan, the sooner it will (eventually) percolate through into all the places where it would be convenient for it to already exist, like the insides of containers.
-
Simon Tatham authored
SUPDUP came, at my insistence, with a history section in the docs for people who hadn't heard of it. It seems only fair that the other obsolete network protocols (or, at least, the ones we *wish* were obsolete :-) should have the same kind of treatment.
-
Simon Tatham authored
Moved the Raw protocol to below Serial, so that the first two sections are SSH and Serial, matching the (now very emphatic) priority order in the config UI. Similarly, reordered the bullet points in \k{config-hostname}.
-
Simon Tatham authored
-
Simon Tatham authored
They're not any more!
-
Simon Tatham authored
Just noticed that intro.but still gives it equal weight with Unix, which probably wasn't even true in 2001, and certainly isn't true now.
-
- Apr 11, 2021
-
-
Simon Tatham authored
I've filled in some text about prime generation methods and Ed448, which were all the things marked as 'review before release'. While I'm at it, also filled in a reasonable enough DSA key length recommendation, because the FIXME comment in that section was within sight of one of the places I was editing. FIPS 186-4 seemed to think that RSA and DSA had comparable relationships between the key length and practical security level, so I see no reason not to use the same recommendation for both key types.
-
Simon Tatham authored
In commit bb59f273 I changed a use of the constant GWL_ID to GWLP_ID, on the grounds that the former caused a build failure under winelib. But the GWLP constants are supposed to be used with GetWindowLongPtr, and I was still calling GetWindowLong. (Benign, since the two sets of constants are the same. But that is the only case in the whole code base where I'd made that error, and since it was only introduced a couple of days ago, there's no possibility of a longstanding historical reason for carefully not touching it!)
-
- Apr 10, 2021
-
-
Simon Tatham authored
I must have written that comment before I'd decided on how to spell --setver.
-
Jacob Nevins authored
'User options' is a technical term in SUPDUP, but I don't think 'Location string' is one of them.
-
Simon Tatham authored
Turns out that the precautions against winelib builds failing, which I put in years ago because I was using winelib as a build setup for Coverity testing, are all obsolete. My Coverity build scripts runs fine now without any of them.
-
Jacob Nevins authored
Aah, that's better. It's been bugging me since I added it.
-
Simon Tatham authored
Many of VS's warnings are too noisy to be useful, but I just tried the experiment of turning off the unrecoverable ones and seeing what was left, and I found a couple of things that actually seem worth fixing. In a few cases in mpint.c, and in one case in sshzlib.c, we had the idiom 'size_t var = 1 << bitpos;', and VS pointed out that when '1' is implicitly a 32-bit int and 'size_t' is 64 bits, this is probably not what you wanted. Writing '(size_t)1 << bitpos' is safer. Secondly, VS complained about lots of functions failing to return a value, or not returning a value on every code path. In every case this was somewhere that we'd used the local unreachable() idiom to indicate that those code paths didn't return at all. So the real problem was that that idiom didn't work in VS. And that's not because VS _can't_ mark functions as noreturn: it has a perfectly good declspec for it. It was just that we hadn't actually _done_ it. Now added a clause in the #if in defs.h that spots VS and uses the declspec.
-