Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fully initialize the argument to TIOCSWINSZ

struct winsize contains fields other than ws_col and ws_row.  To avoid passing
uninitialized data to TIOCSWINSZ, initialize it first using TIOCGWINSZ.

Found by Valgrind.

(closes #85 github issue)
  • Loading branch information...
commit ba9b16aafa39882c9a5b127489b89349f08e8b2f 1 parent 9a7f3ad
@kmcallister authored keithw committed
Showing with 4 additions and 0 deletions.
  1. +4 −0 src/frontend/mosh-server.cc
View
4 src/frontend/mosh-server.cc
@@ -433,6 +433,10 @@ void serve( int host_fd, Terminal::Complete &terminal, ServerConnection &network
/* tell child process of resize */
const Parser::Resize *res = static_cast<const Parser::Resize *>( us.get_action( i ) );
struct winsize window_size;
+ if ( ioctl( host_fd, TIOCGWINSZ, &window_size ) < 0 ) {
+ perror( "ioctl TIOCGWINSZ" );
+ return;
+ }
window_size.ws_col = res->width;
window_size.ws_row = res->height;
if ( ioctl( host_fd, TIOCSWINSZ, &window_size ) < 0 ) {
Please sign in to comment.
Something went wrong with that request. Please try again.