Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

66 check-ins using file misc.h version cdbb0353fa

2012-07-28
11:33
Remove an unused variable. check-in: 5fca0480b8 user: simon tags: trunk
2012-07-22
14:51
Introduce a new utility function smemclr(), which memsets things to zero but does it in such a way that over-clever compilers hopefully won't helpfully optimise the call away if you do it just before freeing something or letting it go out of scope. Use this for (hopefully) every memset whose job is to destroy sensitive data that might otherwise be left lying around in the process's memory. check-in: aee68b8d31 user: simon tags: trunk
14:48
Remove a bashism in mksrcarc.sh, without which bob builds fail on Ubuntu (whose /bin/sh is not bash). check-in: 4aed111c79 user: simon tags: trunk
2012-07-18
23:42
Add '-Wall -Werror' to the compile options in the autotools makefile, having just noticed that Makefile.gtk had it and this one doesn't. (Of course, this being autoconf, we can easily enough make it conditional on the compiler actually being gcc.) check-in: b18fa86db2 user: simon tags: trunk
23:29
Rework the new type-check in sresize so that it doesn't cause a compile warning ('left-hand operand of comma expression has no effect'), which of course becomes fatal under -Werror. (This would have been instantly noticeable to people compiling with the old-fashioned Makefile.gtk, which does include -Wall -Werror, but those of us using the new autoconf makefile hadn't noticed.) check-in: e0cb545c71 user: simon tags: trunk
11:08
Remove term_key, which was intended to handle function keys in a cross- platform manner, but which nothing ever called. It thus served only to trap up the unwary. The live function key handling code lives in the frontends, i.e. window.c on Windows and gtkwin.c on Unix. check-in: ebca704008 user: owen tags: trunk
2012-07-11
13:12
If pterm's execvp fails when given the whole argument list after -e, and the argument list contains only one string, try again by passing that single string to "$SHELL -c" to be parsed as a shell command. This matches xterm's behaviour (as of xterm 261, at least), and means in practice that users can do _either_ of 'pterm -e some command' and 'pterm -e "some command"'. (A quick survey suggests that the majority of X terminal programs agree with pterm's old behaviour of only supporting '-e some command', except that gnome-terminal only supports the other behaviour and xterm supports both. With that disagreement, I think supporting both is probably the sensible thing.) check-in: 6530f824ce user: simon tags: trunk
2012-07-05
18:45
Turns out that the compose-keys fix in r9567 did in fact break one piece of keyboard handling: if Num Lock is on, numeric keypad keys are eaten by the IM, so we must avoid passing them to the IM in the first place if we're in any non-default numeric keypad mode (application or Nethack). This is a grubby way to do it, but the more obvious approach of just moving the Nethack and app-keypad if statements up to above the IM call doesn't work because those statements depend on the generic Alt-prefix handling that happens just _below_ the IM call. So instead I just repeat the list of keystrokes and modes in an if statement conditionalising the IM call. check-in: 7c3afb2e69 user: simon tags: trunk
2012-07-01
11:55
Stop including <gtk/gtkcontainer.h> directly, since a user points out that it'll be absent in GTK 3. check-in: 9858aaec38 user: simon tags: trunk
2012-06-20
12:39
John Hartnup reports that Apache SSHD's SFTP server responds to FXP_READDIR on an empty directory by returning a zero-length list of filenames, instead of the more common response of a list containing just "." and "..". Stop PSFTP failing an assertion when that happens. check-in: 36569ee0d2 user: simon tags: trunk
2012-06-18
13:10
Add the missing code to treat data coming from the input method as keypresses for purposes of hiding the mouse pointer and resetting the scrollback. check-in: a0c27fcd97 user: simon tags: trunk
2012-06-17
02:26
Support for dead keys and compose sequences on Unix, by instantiating a GtkIMMulticontext and having that filter most keypresses. I think I've got this right so that it doesn't break any previous deliberate keyboard-handling behaviour that's now _after_ the 'if (filter keypress) return' statement. check-in: e02da4865e user: simon tags: trunk
2012-06-09
10:09
Introduce a third setting for the 'bold as colour' mode, which lets you both brighten the colour _and_ bold the font at the same time. (Fixes 'bold-font-colour' and Debian #193352.) check-in: 8394417bea user: simon tags: trunk
2012-06-04
18:32
Add missing check for failure to agree a host key algorithm. check-in: dac73d4239 user: simon tags: trunk
2012-06-01
14:43
Missing #include. check-in: 22958c57fc user: simon tags: trunk
01:50
Fix a bug in cygtermd, spotted by Casey Zacek, in which we unconditionally set the telnet state to SEENCR regardless of whether we have actually seen a CR, and as a result sending a NUL through PuTTY (via Ctrl-Space or whatever) does not work. Must have arisen through some kind of really weird cut-and-paste error! check-in: f270727eb1 user: simon tags: trunk
2012-05-18
14:51
Enhance my 'sresize' macro so that it type-checks the pointer you pass _in_ to it, as well as the one it returns. Why have I never thought of doing that before?! check-in: 35bac4b296 user: simon tags: trunk
2012-05-15
17:19
Fix bug in the new CLOCK_MONOTONIC implementation. I was treating the nanoseconds field as a microseconds field, with hilarious consequences. check-in: 90d7f8c35f user: simon tags: trunk
2012-05-13
10:59
Use clock_gettime(CLOCK_MONOTONIC) as the Unix getticks(), if it's available. check-in: 37168cc6dd user: simon tags: trunk
10:59
Patch from Robert de Bath to substantially simplify timing.c. The previous platform-dependent ifdefs, switching between a system which tried to cope with spurious callbacks (which I'd observed on Windows) and one which tried to cope with system clock jumps (which can happen on Unix, if you use gettimeofday) have been completely removed, and replaced with a much simpler approach which just copes with system clock jumps by triggering any timers immediately. None of the resulting effects should be catastrophic (the worst thing might be the waste of CPU in a spurious rekey, but as long as the system clock isn't jumping around _all_ the time that's hardly critical) and in any case the Unix port has had a long-standing oddity involving occasional lockups if pterm or PuTTY runs for too long, which hopefully this should replace with a much less bad failure mode. And the code is much simpler, which is not to be sneezed at. check-in: 88bffdc065 user: simon tags: trunk
10:59
Fix from Robert de Bath which reorders the Windows initialisation sequence: since init_fonts sets up ucsdata based on the available Windows fonts, we should call it before passing ucsdata to term_init. check-in: 2717a22bba user: simon tags: trunk
10:59
Bug fix from Robert de Bath: since lpDx_maybe is always supposed to equal either lpDx or NULL, we mustn't forget to update it when we realloc lpDx. check-in: 97d3643dfe user: simon tags: trunk
2012-05-12
12:00
When we are asked to unthrottle an SSH connection (by the front end calling back->unthrottle), we should immediately call ssh_process_queued_incoming_data to handle the SSH packets that have been saved for later functioning while we were throttled. Otherwise, they'll sit there unhandled until the next call to ssh_gotdata, which might not be for ages if the server thinks it's waiting for us. check-in: 02b713d7b0 user: simon tags: trunk
2012-04-30
12:28
Fix trivial Perl goof in logparse.pl which caused SSH2_MSG_CHANNEL_FAILURE to be reported as replying to ARRAY(0xrubbish) instead of to a message number. check-in: cf89852550 user: simon tags: trunk
2012-04-24
12:33
Fix an inverted comparison in rlogin.c which must surely have broken logins completely, with or without a supplied username. Ahem. check-in: 43d74f79ef user: simon tags: trunk
2012-04-23
12:59
Call sshfwd_unclean_close() in the event of a local socket error on a forwarded X connection. (I somehow forgot to do this in r9364, despite making the identical change in portfwd.c.) check-in: b487bd5e1d user: simon tags: trunk
2012-04-22
09:22
Patch from Robert de Bath to ifdef out the Windows-specific hack for the offset horizontal line characters in the VT100 line-drawing set (o,p,r,s), so that no trace of it - and hence no pointless performance hit - is compiled into the cross-platform modules on non-Windows platforms. check-in: c9610e7ecb user: simon tags: trunk
09:22
Bug fix from Robert de Bath: if the utf8_override setting is changed in mid-session, it affects translation and hence display, so it should be listed among the settings that require a redraw. check-in: 15c9c5b0d3 user: simon tags: trunk
09:22
Bug fix from Robert de Bath: if wc_to_mb returns a length of zero, it will not even initialise sbstring[0], so we shouldn't even look at it let alone depend on it to tell us the desired character was absent. check-in: 31149e5bdd user: simon tags: trunk
2012-04-18
01:36
Conditionalise the calls to premsg and postmsg in uxcons.c's logevent(), which temporarily turn off the raw mode we've put stderr into, so that they don't get called if the log_eventlog() call between them is not _actually_ going to write to stderr. Fixes a bug in which, if you define a Unix PuTTY saved session which uses 'plink -nc' as a local proxy command and then run PuTTY backgrounded from the shell with that session loaded, the subprocess Plink would get SIGTTOU when it tried to muck about with stderr and the whole thing would grind to a halt. I'm prepared to consider that acceptable if Plink _really_ wants to write on standard error, but if it doesn't, it should just carry on working in the background! check-in: cdafcd314c user: simon tags: trunk
2012-04-16
13:21
Fix a Perl warning about useless use of a constant in void context. check-in: 176866b9c2 user: simon tags: trunk
2012-04-14
12:24
New utility script to parse an SSH packet dump and write out an interpretation with some analysis done on it. The script will do its own tracking of the set of open channels and their states, and its output is in a one-line-per-packet format such that every distinct channel has a unique identifier in it which should make it easy to grep out all lines relating to that channel. The script also matches up {CHANNEL,REQUEST}_{SUCCESS,FAILURE} to the requests that caused them, by tracking a queue of requests in each direction per channel and for global requests. Command-line options permit generating a final dump of all channels ever known to the script and their various ids and final state, and also dumping out the data transferred over each channel in each direction. Output is not complete, in the sense that some parameters in some messages (e.g. pixel sizes in window-size specifications) are deliberately omitted due to being boring, and the entire contents of some messages (e.g. KEXINIT) are omitted because I haven't yet seen any purpose in decoding them. Filling them in might be a useful thing, although I'm inclined to think that the default should still be to show only the potentially interesting stuff (e.g. still not pixel sizes!) and enable the rest using a -v option. Hopefully this should do a lot of the legwork in debugging issues in which a channel mysteriously remains partially open and prevents PuTTY closing. check-in: bacd65bbf5 user: simon tags: trunk
2012-04-13
13:02
Add code in dlg_filesel_set and dlg_fontsel_set which makes them duplicate the strings they pass to gtk_entry_set_text. I was already doing that in dlg_editbox_set, but forgot to add the same code when I revamped FontSpec and Filename to contain dynamically allocated strings (r9314 and r9316 respectively). This fixes a bug where, on some versions of GTK (but apparently not up-to-date versions), loading a saved session causes gibberish to appear in file-selector edit boxes accompanied by a valgrind error. check-in: 9e94ccddfe user: simon tags: trunk
2012-04-08
04:42
Fallout from the big revamp in r9214: colour handling was going a bit wonky because I'd used the subkey for the red component in four places where I should have used the green/blue subkeys instead. Thanks to Martin Kletzander for spotting it. check-in: 9bf895b959 user: simon tags: trunk
2012-03-05
12:40
Fix another type mismatch introduced by r9409. check-in: d2c442916f user: simon tags: trunk
12:34
Fix a type mismatch in minibidi.c - r9409 changed the 'wc' fields in bidi_char from wchar_t to unsigned int, but omitted to similarly adjust the parameter to doMirror which is passed a pointer to that field. check-in: 747a4a8d26 user: simon tags: trunk
12:32
Initialise some variables to NULL, to placate optimisers. check-in: f98093aa2e user: simon tags: trunk
2012-03-03
19:01
Remove comment about 1024/1023 RSA key lengths that's no longer true as of r9421. check-in: fdca1e4975 user: jacob tags: trunk
18:24
Generate keys more carefully, so that when the user asks for an n-bit key they always get an n-bit number instead of n-1. The latter was perfectly harmless but kept confusing users. check-in: de4b8709f0 user: simon tags: trunk
18:24
Long overdue rewrapping of the primes[] array for legibility. I think the previous ghastly formatting arose when I ran the whole source base through GNU indent... check-in: a4226d3c39 user: simon tags: trunk
2012-02-19
04:44
Update default key length in PuTTYgen to 2048. check-in: c630f6dc40 user: simon tags: trunk
04:32
Update to 2007-05-26 version of upstream wcwidth.c. check-in: e4d74f3b5c user: simon tags: trunk
04:27
Patch from Matsui Nag to implement xterm's "bracketed paste mode", in which text pasted into the terminal is preceded and followed by special function-key-like escape sequences ESC[200~ and ESC[201~ so that the application can identify it and treat it specially (e.g. disabling auto-indent-same-as-previous-line in text editors). Enabled and disabled by ESC[?2004h and ESC[?2004l, and of course off by default. check-in: 90e7b33dbb user: simon tags: trunk
2012-02-17
13:28
Patch from Yoshida Masato to fill in the missing pieces of Windows UTF-16 support. High Unicode characters in the terminal are now converted back into surrogates during copy and draw operations, and the Windows drawing code takes account of that when splitting up the UTF-16 string for display. Meanwhile, accidental uses of wchar_t have been replaced with 32-bit integers in parts of the cross-platform code which were expecting not to have to deal with UTF-16. check-in: af034c145b user: simon tags: trunk
2012-02-05
04:08
WM_SIZE/SIZE_MAXIMIZED can show up even during an interactive resize, so we should ensure we treat it the same way as other WM_SIZEs that show up during that time: set the width and height in conf, and set the flag to have that width and height enacted on WM_EXITSIZEMOVE. Fixes a bug in which dragging a PuTTY window directly from the Win7 snapped-to-half-screen position to the snapped-to-maximised state would leave the terminal in the pre-snapped size. check-in: f465256d47 user: simon tags: trunk
2012-01-29
18:29
New FAQ: "When I put PuTTY in C:\WINDOWS\SYSTEM32 on my 64-bit Windows system, `Duplicate Session' doesn't work." (Explanation courtesy Owen.) check-in: a4057416e6 user: jacob tags: trunk
2012-01-26
12:53
It's a new year. check-in: 5c1e09c0b1 user: jacob tags: trunk
12:22
If we're called on to uncleanly close an SSH channel for which we've already sent SSH2_MSG_CHANNEL_CLOSE, we should not skip the _whole_ of sshfwd_unclean_close(), only the part about sending SSH2_MSG_CHANNEL_CLOSE. It's still important to retag the SSH channel as CHAN_ZOMBIE and clean up its previous data provider. check-in: 4dc3ffb821 user: simon tags: trunk
2012-01-03
13:43
Patch from Colin Watson to use g_ascii_strcasecmp in place of the deprecated g_strcasecmp (since all the strings being compared are parts of XLFDs and won't be in interesting character sets anyway). check-in: 861a49e69b user: simon tags: trunk
2011-12-10
08:03
Checklist update following the 0.62 release. I managed to send out the announcement email without a subject line, so I'm reorganising the announcement entry in the checklist in the hope that it'll make it harder for me to get that one wrong in future! check-in: 2e6ff4194a user: simon tags: trunk
06:07
Bump version number on trunk prior to tagging 0.62 on the branch. check-in: 896ba0eb03 user: simon tags: trunk
2011-12-08
13:15
Introduce a function sshfwd_unclean_close(), supplied by ssh.c to subsidiary network modules like portfwd.c. To be called when the subsidiary module experiences a socket error: it sends an emergency CHANNEL_CLOSE (not just outgoing CHANNEL_EOF), and immediately deletes the local side of the channel. (I've invented a new channel type in ssh.c called CHAN_ZOMBIE, for channels whose original local side has already been thrown away and they're just hanging around waiting to receive the acknowledging CHANNEL_CLOSE.) As a result of this and the last few commits, I can now run a port forwarding session in which a local socket error occurs on a forwarded port, and PuTTY now handles it apparently correctly, closing both the SSH channel and the local socket and then actually recognising that it's OK to terminate when all _other_ channels have been closed. Previously the channel corresponding to the duff connection would linger around (because of net_pending_errors never being called), and keep being selected on (hence chewing CPU), and inhibit program termination at the end of the session (because not all channels were closed). check-in: 9377dd8f27 user: simon tags: trunk
13:15
Arrange to call net_pending_errors on Unix, which we've never actually remembered to do before! Also some related fixes, such as that after we do so we should immediately stop selecting on the socket in question. check-in: 49322399b9 user: simon tags: trunk
13:15
When we receive CHANNEL_CLOSE on an SSH-2 channel and haven't sent EOF on it yet, we should send EOF on _that channel_, not the main session channel! Oops. check-in: 88c017dc17 user: simon tags: trunk
13:15
Whitespace fix while I was passing. check-in: a1b22459c5 user: simon tags: trunk
13:15
Make sure we never send window adjustments (or winadjes) on channels for which we've already sent CHANNEL_CLOSE. It would be embarrassing if the remote end had also sent CHANNEL_CLOSE in response and then received our communication once it had forgotten about the channel. check-in: fe229d2998 user: simon tags: trunk
13:15
Block SIGPIPE in Unix plink. In a port-forwarding run we may have lots of local sockets and pipes all open at once, and if one of them is uncleanly closed from the remote end we don't want the whole application to die - we want to close that socket's SSH channel and continue with the rest of the run. check-in: e039bca76c user: simon tags: trunk
2011-12-07
13:07
Add a missing free_prompts() call in the keyboard-interactive code. check-in: 596656b982 user: simon tags: trunk
2011-11-28
13:23
Tiny patch from Martin Packman to fix a Windows handle leak in Pageant's IPC mechanism. It's incomplete (he sent a much more comprehensive set of fixes that I haven't reviewed), but should be adequate to mitigate a particular issue for Bazaar users. check-in: 8050548bc2 user: simon tags: trunk
13:17
I missed a bit in r9343: windows/version.rc2 also needed updating for the new 'pre-release' version type. check-in: a0be433597 user: simon tags: trunk
2011-11-27
05:10
Add a release checklist entry to remind me to get rid of 'pre-release' sections on the Download page. check-in: 5cc46486b7 user: simon tags: trunk
2011-11-26
11:35
Introduce a new version type, 'prerelease'. Quotes the version number it's a pre-release of, and the revision number so you can tell two pre-releases apart. I intend to use this for builds from branch-0.61 until I call it 0.62 proper. check-in: acf1c41d51 user: simon tags: trunk
2011-10-14
02:03
Support code page 852. Thanks to Tamas Tevesz. check-in: 7459546673 user: simon tags: trunk
2011-10-02
09:16
Private files saved on Unix should have mode 0600, not 0700. They're generally private-key files, which have no need to be executable. check-in: c4dd9a1230 user: simon tags: trunk
09:14
More arbitrary-limit hunting: retire PASSPHRASE_MAXLEN in the Windows GUIs of Pageant and PuTTYgen. With that and the prompts_t redesign, there should no longer be any limit on passphrase length other than the patience of the user. check-in: 2a6b005d2c user: simon tags: trunk
09:03
Another utility function, to free a string containing sensitive data. check-in: 27157daada user: simon tags: trunk