mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-02 03:52:49 -05:00
Patch inspired by one from Daniel Silverstone in Debian bug #229232:
We now have an option where a remote window title query returns a well-formed response containing the empty string. This should keep stop any server-side application that was expecting a response from hanging, while not permitting the response to be influenced by an attacker. We also retain the ability to stay schtum. The existing checkbox has thus grown into a set of radio buttons. I've changed the default to the "empty string" response, even in the backward- compatibility mode of loading old settings, which is a change in behaviour; any users who want the old behaviour back will have to explicitly select it. I think this is probably the Right Thing. (The only drawback I can think of is that an attacker could still potentially use the relevant fixed strings for mischief, but we already have other, similar reports.) [originally from svn r7043]
This commit is contained in:
14
settings.c
14
settings.c
@ -324,7 +324,7 @@ void save_open_settings(void *sesskey, int do_host, Config *cfg)
|
||||
write_setting_i(sesskey, "NoRemoteResize", cfg->no_remote_resize);
|
||||
write_setting_i(sesskey, "NoAltScreen", cfg->no_alt_screen);
|
||||
write_setting_i(sesskey, "NoRemoteWinTitle", cfg->no_remote_wintitle);
|
||||
write_setting_i(sesskey, "NoRemoteQTitle", cfg->no_remote_qtitle);
|
||||
write_setting_i(sesskey, "RemoteQTitleAction", cfg->remote_qtitle_action);
|
||||
write_setting_i(sesskey, "NoDBackspace", cfg->no_dbackspace);
|
||||
write_setting_i(sesskey, "NoRemoteCharset", cfg->no_remote_charset);
|
||||
write_setting_i(sesskey, "ApplicationCursorKeys", cfg->app_cursor);
|
||||
@ -606,7 +606,17 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
|
||||
gppi(sesskey, "NoRemoteResize", 0, &cfg->no_remote_resize);
|
||||
gppi(sesskey, "NoAltScreen", 0, &cfg->no_alt_screen);
|
||||
gppi(sesskey, "NoRemoteWinTitle", 0, &cfg->no_remote_wintitle);
|
||||
gppi(sesskey, "NoRemoteQTitle", 1, &cfg->no_remote_qtitle);
|
||||
{
|
||||
/* Backward compatibility */
|
||||
int no_remote_qtitle;
|
||||
gppi(sesskey, "NoRemoteQTitle", 1, &no_remote_qtitle);
|
||||
/* We deliberately interpret the old setting of "no response" as
|
||||
* "empty string". This changes the behaviour, but hopefully for
|
||||
* the better; the user can always recover the old behaviour. */
|
||||
gppi(sesskey, "RemoteQTitleAction",
|
||||
no_remote_qtitle ? TITLE_EMPTY : TITLE_REAL,
|
||||
&cfg->remote_qtitle_action);
|
||||
}
|
||||
gppi(sesskey, "NoDBackspace", 0, &cfg->no_dbackspace);
|
||||
gppi(sesskey, "NoRemoteCharset", 0, &cfg->no_remote_charset);
|
||||
gppi(sesskey, "ApplicationCursorKeys", 0, &cfg->app_cursor);
|
||||
|
Reference in New Issue
Block a user