- djm@cvs.openbsd.org 2012/07/06 01:47:38
[ssh.c] move setting of tty_flag to after config parsing so RequestTTY options are correctly picked up. bz#1995 patch from przemoc AT gmail.com; ok dtucker@
This commit is contained in:
parent
ab523b0246
commit
fff9f095e2
|
@ -16,6 +16,11 @@
|
||||||
fix memory leak of passed-in environment variables and connection
|
fix memory leak of passed-in environment variables and connection
|
||||||
context when new session message is malformed; bz#2003 from Bert.Wesarg
|
context when new session message is malformed; bz#2003 from Bert.Wesarg
|
||||||
AT googlemail.com
|
AT googlemail.com
|
||||||
|
- djm@cvs.openbsd.org 2012/07/06 01:47:38
|
||||||
|
[ssh.c]
|
||||||
|
move setting of tty_flag to after config parsing so RequestTTY options
|
||||||
|
are correctly picked up. bz#1995 patch from przemoc AT gmail.com;
|
||||||
|
ok dtucker@
|
||||||
|
|
||||||
20120704
|
20120704
|
||||||
- (dtucker) [configure.ac openbsd-compat/bsd-misc.h] Add setlinebuf for
|
- (dtucker) [configure.ac openbsd-compat/bsd-misc.h] Add setlinebuf for
|
||||||
|
|
43
ssh.c
43
ssh.c
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ssh.c,v 1.369 2012/07/02 08:50:03 dtucker Exp $ */
|
/* $OpenBSD: ssh.c,v 1.370 2012/07/06 01:47:38 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
|
||||||
|
@ -638,10 +638,6 @@ main(int ac, char **av)
|
||||||
/* Initialize the command to execute on remote host. */
|
/* Initialize the command to execute on remote host. */
|
||||||
buffer_init(&command);
|
buffer_init(&command);
|
||||||
|
|
||||||
if (options.request_tty == REQUEST_TTY_YES ||
|
|
||||||
options.request_tty == REQUEST_TTY_FORCE)
|
|
||||||
tty_flag = 1;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Save the command to execute on the remote host in a buffer. There
|
* Save the command to execute on the remote host in a buffer. There
|
||||||
* is no limit on the length of the command, except by the maximum
|
* is no limit on the length of the command, except by the maximum
|
||||||
|
@ -649,7 +645,6 @@ main(int ac, char **av)
|
||||||
*/
|
*/
|
||||||
if (!ac) {
|
if (!ac) {
|
||||||
/* No command specified - execute shell on a tty. */
|
/* No command specified - execute shell on a tty. */
|
||||||
tty_flag = options.request_tty != REQUEST_TTY_NO;
|
|
||||||
if (subsystem_flag) {
|
if (subsystem_flag) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"You must specify a subsystem to invoke.\n");
|
"You must specify a subsystem to invoke.\n");
|
||||||
|
@ -670,22 +665,6 @@ main(int ac, char **av)
|
||||||
fatal("Cannot fork into background without a command "
|
fatal("Cannot fork into background without a command "
|
||||||
"to execute.");
|
"to execute.");
|
||||||
|
|
||||||
/* Allocate a tty by default if no command specified. */
|
|
||||||
if (buffer_len(&command) == 0)
|
|
||||||
tty_flag = options.request_tty != REQUEST_TTY_NO;
|
|
||||||
|
|
||||||
/* Force no tty */
|
|
||||||
if (options.request_tty == REQUEST_TTY_NO || muxclient_command != 0)
|
|
||||||
tty_flag = 0;
|
|
||||||
/* Do not allocate a tty if stdin is not a tty. */
|
|
||||||
if ((!isatty(fileno(stdin)) || stdin_null_flag) &&
|
|
||||||
options.request_tty != REQUEST_TTY_FORCE) {
|
|
||||||
if (tty_flag)
|
|
||||||
logit("Pseudo-terminal will not be allocated because "
|
|
||||||
"stdin is not a terminal.");
|
|
||||||
tty_flag = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize "log" output. Since we are the client all output
|
* Initialize "log" output. Since we are the client all output
|
||||||
* actually goes to stderr.
|
* actually goes to stderr.
|
||||||
|
@ -721,6 +700,26 @@ main(int ac, char **av)
|
||||||
/* reinit */
|
/* reinit */
|
||||||
log_init(argv0, options.log_level, SYSLOG_FACILITY_USER, !use_syslog);
|
log_init(argv0, options.log_level, SYSLOG_FACILITY_USER, !use_syslog);
|
||||||
|
|
||||||
|
if (options.request_tty == REQUEST_TTY_YES ||
|
||||||
|
options.request_tty == REQUEST_TTY_FORCE)
|
||||||
|
tty_flag = 1;
|
||||||
|
|
||||||
|
/* Allocate a tty by default if no command specified. */
|
||||||
|
if (buffer_len(&command) == 0)
|
||||||
|
tty_flag = options.request_tty != REQUEST_TTY_NO;
|
||||||
|
|
||||||
|
/* Force no tty */
|
||||||
|
if (options.request_tty == REQUEST_TTY_NO || muxclient_command != 0)
|
||||||
|
tty_flag = 0;
|
||||||
|
/* Do not allocate a tty if stdin is not a tty. */
|
||||||
|
if ((!isatty(fileno(stdin)) || stdin_null_flag) &&
|
||||||
|
options.request_tty != REQUEST_TTY_FORCE) {
|
||||||
|
if (tty_flag)
|
||||||
|
logit("Pseudo-terminal will not be allocated because "
|
||||||
|
"stdin is not a terminal.");
|
||||||
|
tty_flag = 0;
|
||||||
|
}
|
||||||
|
|
||||||
seed_rng();
|
seed_rng();
|
||||||
|
|
||||||
if (options.user == NULL)
|
if (options.user == NULL)
|
||||||
|
|
Loading…
Reference in New Issue