1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00
Go to file
Simon Tatham 5388e5f7ee Fix use-after-free in locale-based stripctrl.
We call setlocale() at the start of the function to get the current
LC_CTYPE locale, then set it to what we need during the function, and
then call setlocale() at the end to put it back again. But the middle
call is allowed to invalidate the pointer returned from the first, so
we have to save it in our own allocated storage until the end of the
function.

This bit me during development just now, and I was surprised that it
hadn't come up before! But I suppose this is one of those things
that's only _allowed_ to fail, and need not in all circumstances -
perhaps it depends on what your LC_CTYPE was set to before.
2022-04-22 15:19:25 +01:00
charset Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
cmake Windows tools: assorted '-demo' options. 2022-04-02 17:23:34 +01:00
contrib Fix a batch of typos in comments and docs. 2022-01-03 06:40:51 +00:00
crypto Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
doc Add a docs note about DNS performed by GSSAPI. 2022-02-22 18:44:48 +00:00
icons Make Windows versions of the pterm icons. 2021-05-08 17:33:25 +01:00
keygen Generalise strbuf_catf() into put_fmt(). 2021-11-19 11:32:47 +00:00
otherbackends Resurrect the test backends. 2022-04-02 16:13:27 +01:00
proxy sshproxy: call backend_unthrottle on unfreeze. 2022-03-30 18:21:33 +01:00
ssh Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
stubs nocmdline.c: remove unused stub of cmdline_process_param. 2022-01-22 15:51:25 +00:00
terminal Cancel drag-select when the context menu pops up. 2022-03-29 18:06:14 +01:00
test Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
unix Cancel drag-select when the context menu pops up. 2022-03-29 18:06:14 +01:00
utils Fix use-after-free in locale-based stripctrl. 2022-04-22 15:19:25 +01:00
windows Windows tools: assorted '-demo' options. 2022-04-02 17:23:34 +01:00
.gitignore Add .gitignore rules for in-tree builds. 2021-04-19 18:26:56 +01:00
aqsync.c Build outgoing SSH agent requests in a strbuf. 2018-05-25 14:36:16 +01:00
be_list.c Merge be_*.c into one ifdef-controlled module. 2021-11-26 17:58:55 +00:00
Buildscr Put all the docs formats into the tarball. 2021-12-21 09:49:58 +00:00
Buildscr.cv Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
callback.c Add lots of missing 'static' keywords. 2020-01-29 06:44:18 +00:00
cgtest.c Richer data type for interactive prompt results. 2021-12-28 18:08:31 +00:00
CHECKLST.txt Compatibility with older versions of cmake. 2021-10-29 18:08:18 +01:00
clicons.c Change vtable defs to use C99 designated initialisers. 2020-03-10 21:06:29 +00:00
CMakeLists.txt Add a manual single-char UTF-8 decoder. 2022-03-12 18:51:21 +00:00
cmdgen.c Richer data type for interactive prompt results. 2021-12-28 18:08:31 +00:00
cmdline.c cmdline.c: free cmdline_password whenever it's reset. 2022-01-29 18:25:34 +00:00
config.c Lowercase version of BackendVtable's displayname. 2021-10-24 09:59:05 +01:00
console.c Mention the host name in host-key prompts. 2021-09-16 14:33:59 +01:00
console.h Mention the host name in host-key prompts. 2021-09-16 14:33:59 +01:00
defs.h Add a '#define LEGACY_WINDOWS'. 2022-03-12 18:51:21 +00:00
dialog.c dialog system: add a side-by-side alignment feature. 2021-04-10 09:43:25 +01:00
dialog.h dialog system: add a side-by-side alignment feature. 2021-04-10 09:43:25 +01:00
errsock.c Change vtable defs to use C99 designated initialisers. 2020-03-10 21:06:29 +00:00
import.c Expose openssh_bcrypt() to testcrypt, and test it. 2021-12-24 10:13:28 +00:00
LATEST.VER Update version number for 0.76 release. 2021-07-10 10:39:20 +01:00
ldisc.c free_prompts: deal with a reference from an Ldisc. 2021-09-16 13:55:10 +01:00
LICENCE It's a new year. 2022-01-04 10:17:17 +00:00
licence.pl Separate the functions of licence.pl. 2021-04-17 13:52:27 +01:00
logging.c sshproxy: share the caller's LogPolicy. 2021-09-13 17:18:31 +01:00
marshal.h Remove duplicated string-literal formatter in Telnet proxy. 2021-12-22 15:05:04 +00:00
misc.h Add a manual single-char UTF-8 decoder. 2022-03-12 18:51:21 +00:00
mksrcarc.sh Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
mkunxarc.sh Integrate the 'doc' subdir into the CMake system. 2021-05-03 17:01:55 +01:00
mpint.h Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
network.h net_service_lookup: add missing 'const'. 2022-01-22 15:51:33 +00:00
pageant.c New API for plug_closing() with a custom type enum. 2021-11-06 14:48:26 +00:00
pageant.h winpgnt: menu options to delete/reencrypt everything. 2021-04-04 10:02:24 +01:00
pinger.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
pscp.c Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
psftp.c Merge be_*.c into one ifdef-controlled module. 2021-11-26 17:58:55 +00:00
psftp.h Remove FLAG_VERBOSE. 2020-01-30 06:40:21 +00:00
psftpcommon.c Move the SSH implementation into its own subdirectory. 2021-04-22 18:09:13 +01:00
psocks.c New API for plug_closing() with a custom type enum. 2021-11-06 14:48:26 +00:00
psocks.h Auxiliary application: 'psocks', a simple SOCKS server. 2020-02-23 16:36:27 +00:00
putty.h Cancel drag-select when the context menu pops up. 2022-03-29 18:06:14 +01:00
puttymem.h Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
README Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
release.pl Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
settings.c Windows tools: assorted '-demo' options. 2022-04-02 17:23:34 +01:00
sign.sh GPG key rollover. 2021-08-14 08:02:27 +01:00
ssh.h Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
sshcr.h Update source file names in comments and docs. 2022-01-22 15:51:31 +00:00
sshkeygen.h Side-channel-safe rewrite of the Miller-Rabin test. 2021-08-27 18:04:49 +01:00
sshpubk.c Generalise strbuf_catf() into put_fmt(). 2021-11-19 11:32:47 +00:00
sshrand.c Remove dependency of sshrand.c on SHA-512. 2020-09-13 09:11:31 +01:00
storage.h Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
timing.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
tree234.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
version.h Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
x11disp.c Move the SSH implementation into its own subdirectory. 2021-04-22 18:09:13 +01:00

This is the README for PuTTY, a free Windows and Unix Telnet and SSH
client.

PuTTY is built using CMake <https://cmake.org/>. To compile in the
simplest way (on any of Linux, Windows or Mac), run these commands in
the source directory:

  cmake .
  cmake --build .

Documentation (in various formats including Windows Help and Unix
`man' pages) is built from the Halibut (`.but') files in the `doc'
subdirectory using `doc/Makefile'. If you aren't using one of our
source snapshots, you'll need to do this yourself. Halibut can be
found at <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>.

The PuTTY home web site is

    https://www.chiark.greenend.org.uk/~sgtatham/putty/

If you want to send bug reports or feature requests, please read the
Feedback section of the web site before doing so. Sending one-line
reports saying `it doesn't work' will waste your time as much as
ours.

See the file LICENCE for the licence conditions.