mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-29 08:44:52 +02:00
upstream: when deciding whether to enable keystroke timing
obfuscation, only consider enabling it when a channel with a tty is open. Avoids turning on the obfucation when X11 forwarding only is in use, which slows it right down. Reported by Roger Marsh OpenBSD-Commit-ID: c292f738db410f729190f92de100c39ec931a4f1
This commit is contained in:
parent
676377ce67
commit
050c335c8d
19
channels.c
19
channels.c
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: channels.c,v 1.433 2023/09/04 00:01:46 djm Exp $ */
|
/* $OpenBSD: channels.c,v 1.434 2023/11/15 22:51:49 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||||
@ -898,6 +898,23 @@ channel_still_open(struct ssh *ssh)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Returns true if a channel with a TTY is open. */
|
||||||
|
int
|
||||||
|
channel_tty_open(struct ssh *ssh)
|
||||||
|
{
|
||||||
|
u_int i;
|
||||||
|
Channel *c;
|
||||||
|
|
||||||
|
for (i = 0; i < ssh->chanctxt->channels_alloc; i++) {
|
||||||
|
c = ssh->chanctxt->channels[i];
|
||||||
|
if (c == NULL || c->type != SSH_CHANNEL_OPEN)
|
||||||
|
continue;
|
||||||
|
if (c->client_tty)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Returns the id of an open channel suitable for keepaliving */
|
/* Returns the id of an open channel suitable for keepaliving */
|
||||||
int
|
int
|
||||||
channel_find_open(struct ssh *ssh)
|
channel_find_open(struct ssh *ssh)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: channels.h,v 1.152 2023/09/04 00:01:46 djm Exp $ */
|
/* $OpenBSD: channels.h,v 1.153 2023/11/15 22:51:49 djm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
@ -340,6 +340,7 @@ int channel_output_poll(struct ssh *);
|
|||||||
int channel_not_very_much_buffered_data(struct ssh *);
|
int channel_not_very_much_buffered_data(struct ssh *);
|
||||||
void channel_close_all(struct ssh *);
|
void channel_close_all(struct ssh *);
|
||||||
int channel_still_open(struct ssh *);
|
int channel_still_open(struct ssh *);
|
||||||
|
int channel_tty_open(struct ssh *);
|
||||||
const char *channel_format_extended_usage(const Channel *);
|
const char *channel_format_extended_usage(const Channel *);
|
||||||
char *channel_open_message(struct ssh *);
|
char *channel_open_message(struct ssh *);
|
||||||
int channel_find_open(struct ssh *);
|
int channel_find_open(struct ssh *);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: clientloop.c,v 1.400 2023/10/12 02:12:53 djm Exp $ */
|
/* $OpenBSD: clientloop.c,v 1.401 2023/11/15 22:51:49 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||||
@ -589,7 +589,7 @@ obfuscate_keystroke_timing(struct ssh *ssh, struct timespec *timeout,
|
|||||||
if (options.obscure_keystroke_timing_interval <= 0)
|
if (options.obscure_keystroke_timing_interval <= 0)
|
||||||
return 1; /* disabled in config */
|
return 1; /* disabled in config */
|
||||||
|
|
||||||
if (!channel_still_open(ssh) || quit_pending) {
|
if (!channel_tty_open(ssh) || quit_pending) {
|
||||||
/* Stop if no channels left of we're waiting for one to close */
|
/* Stop if no channels left of we're waiting for one to close */
|
||||||
stop_reason = "no active channels";
|
stop_reason = "no active channels";
|
||||||
} else if (ssh_packet_is_rekeying(ssh)) {
|
} else if (ssh_packet_is_rekeying(ssh)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user