X-Git-Url: http://andersk.mit.edu/gitweb/gssapi-openssh.git/blobdiff_plain/665a873d320a97fed924de9a5bc7781a495e4fc1..HEAD:/openssh/ttymodes.c diff --git a/openssh/ttymodes.c b/openssh/ttymodes.c index cf4c7d5..c0bb0b1 100644 --- a/openssh/ttymodes.c +++ b/openssh/ttymodes.c @@ -43,7 +43,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: ttymodes.c,v 1.19 2003/04/08 20:21:29 itojun Exp $"); +RCSID("$OpenBSD: ttymodes.c,v 1.14 2001/06/24 17:18:31 markus Exp $"); #include "packet.h" #include "log.h" @@ -240,32 +240,6 @@ baud_to_speed(int baud) } } -/* - * Encode a special character into SSH line format. - */ -static u_int -special_char_encode(cc_t c) -{ -#ifdef _POSIX_VDISABLE - if (c == _POSIX_VDISABLE) - return 255; -#endif /* _POSIX_VDISABLE */ - return c; -} - -/* - * Decode a special character from SSH line format. - */ -static cc_t -special_char_decode(u_int c) -{ -#ifdef _POSIX_VDISABLE - if (c == 255) - return _POSIX_VDISABLE; -#endif /* _POSIX_VDISABLE */ - return c; -} - /* * Encodes terminal modes for the terminal referenced by fd * or tiop in a portable manner, and appends the modes to a packet @@ -293,7 +267,7 @@ tty_make_modes(int fd, struct termios *tiop) if (tiop == NULL) { if (tcgetattr(fd, &tio) == -1) { - logit("tcgetattr: %.100s", strerror(errno)); + log("tcgetattr: %.100s", strerror(errno)); goto end; } } else @@ -313,7 +287,7 @@ tty_make_modes(int fd, struct termios *tiop) #define TTYCHAR(NAME, OP) \ debug3("tty_make_modes: %d %d", OP, tio.c_cc[NAME]); \ buffer_put_char(&buf, OP); \ - put_arg(&buf, special_char_encode(tio.c_cc[NAME])); + put_arg(&buf, tio.c_cc[NAME]); #define TTYMODE(NAME, FIELD, OP) \ debug3("tty_make_modes: %d %d", OP, ((tio.FIELD & NAME) != 0)); \ @@ -333,6 +307,7 @@ end: else packet_put_raw(buffer_ptr(&buf), buffer_len(&buf)); buffer_free(&buf); + return; } /* @@ -367,7 +342,7 @@ tty_parse_modes(int fd, int *n_bytes_ptr) * modes, they will initially have reasonable values. */ if (tcgetattr(fd, &tio) == -1) { - logit("tcgetattr: %.100s", strerror(errno)); + log("tcgetattr: %.100s", strerror(errno)); failure = -1; } @@ -401,7 +376,7 @@ tty_parse_modes(int fd, int *n_bytes_ptr) #define TTYCHAR(NAME, OP) \ case OP: \ n_bytes += arg_size; \ - tio.c_cc[NAME] = special_char_decode(get_arg()); \ + tio.c_cc[NAME] = get_arg(); \ debug3("tty_parse_modes: %d %d", OP, tio.c_cc[NAME]); \ break; #define TTYMODE(NAME, FIELD, OP) \ @@ -421,23 +396,23 @@ tty_parse_modes(int fd, int *n_bytes_ptr) default: debug("Ignoring unsupported tty mode opcode %d (0x%x)", - opcode, opcode); + opcode, opcode); if (!compat20) { /* * SSH1: * Opcodes 1 to 127 are defined to have * a one-byte argument. - * Opcodes 128 to 159 are defined to have - * an integer argument. - */ + * Opcodes 128 to 159 are defined to have + * an integer argument. + */ if (opcode > 0 && opcode < 128) { n_bytes += 1; (void) packet_get_char(); break; } else if (opcode >= 128 && opcode < 160) { - n_bytes += 4; - (void) packet_get_int(); - break; + n_bytes += 4; + (void) packet_get_int(); + break; } else { /* * It is a truly undefined opcode (160 to 255). @@ -446,9 +421,10 @@ tty_parse_modes(int fd, int *n_bytes_ptr) * left in the packet; hopefully there is nothing * more coming after the mode data. */ - logit("parse_tty_modes: unknown opcode %d", opcode); + log("parse_tty_modes: unknown opcode %d", opcode); + packet_integrity_check(0, 1, SSH_CMSG_REQUEST_PTY); goto set; - } + } } else { /* * SSH2: @@ -462,17 +438,17 @@ tty_parse_modes(int fd, int *n_bytes_ptr) (void) packet_get_int(); break; } else { - logit("parse_tty_modes: unknown opcode %d", opcode); + log("parse_tty_modes: unknown opcode %d", opcode); goto set; } - } + } } } set: if (*n_bytes_ptr != n_bytes) { *n_bytes_ptr = n_bytes; - logit("parse_tty_modes: n_bytes_ptr != n_bytes: %d %d", + log("parse_tty_modes: n_bytes_ptr != n_bytes: %d %d", *n_bytes_ptr, n_bytes); return; /* Don't process bytes passed */ } @@ -481,5 +457,6 @@ set: /* Set the new modes for the terminal. */ if (tcsetattr(fd, TCSANOW, &tio) == -1) - logit("Setting tty modes failed: %.100s", strerror(errno)); + log("Setting tty modes failed: %.100s", strerror(errno)); + return; }