mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-08 08:58:00 +00:00
65270b56f0
In a GUI app, when interactive userpass input begins, the Ldisc acquires a reference to a prompts_t. If something bad happens to the SSH connection (e.g. unexpected server-side closure), then all the SSH layers will be destroyed, including freeing that prompts_t. So the Ldisc will have a stale reference to it, which it might potentially use. To fix that, I've arranged a back-pointer so that prompts_t itself can find the Ldisc's reference to it, and NULL it out on free. So now, whichever of a prompts_t and an Ldisc is freed first, the link between them should be cleanly broken. (I'm not 100% sure this is absolutely necessary, in the sense of whether a sequence of events can _actually_ happen that causes a stale pointer dereference. But I don't want to take the chance!) |
||
---|---|---|
.. | ||
base64_decode_atom.c | ||
base64_encode_atom.c | ||
bufchain.c | ||
buildinfo.c | ||
burnstr.c | ||
chomp.c | ||
CMakeLists.txt | ||
conf_dest.c | ||
conf_launchable.c | ||
conf.c | ||
ctrlparse.c | ||
debug.c | ||
dupcat.c | ||
dupprintf.c | ||
dupstr.c | ||
encode_utf8.c | ||
fgetline.c | ||
host_strchr_internal.c | ||
host_strchr.c | ||
host_strcspn.c | ||
host_strduptrim.c | ||
host_strrchr.c | ||
ltime.c | ||
marshal.c | ||
memory.c | ||
memxor.c | ||
miscucs.c | ||
null_lp.c | ||
nullseat.c | ||
nullstrcmp.c | ||
out_of_memory.c | ||
parse_blocksize.c | ||
prompts.c | ||
ptrlen.c | ||
read_file_into.c | ||
seat_connection_fatal.c | ||
sessprep.c | ||
sk_free_peer_info.c | ||
smemclr.c | ||
smemeq.c | ||
ssh2_pick_fingerprint.c | ||
sshutils.c | ||
strbuf.c | ||
string_length_for_printf.c | ||
stripctrl.c | ||
tempseat.c | ||
tree234.c | ||
utils.h | ||
validate_manual_hostkey.c | ||
version.c | ||
wcwidth.c | ||
wildcard.c | ||
write_c_string_literal.c | ||
x11_dehexify.c | ||
x11_identify_auth_proto.c | ||
x11_make_greeting.c | ||
x11_parse_ip.c | ||
x11authfile.c | ||
x11authnames.c |