From 8a58379ece89299bd831d92706da67499eb01225 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Wed, 25 Jul 2018 16:40:23 -0400 Subject: Fix cfmakeraw calls It turns out that you're supposed to call cfmakeraw with a termios initialized by tcgetattr. Using an uninitialized termios resulted in hnel on NetBSD breaking the pty and causing a silent logout. --- bin/dtch.c | 2 +- bin/hnel.c | 2 +- bin/modem.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/dtch.c b/bin/dtch.c index 40daa031..94ed88d7 100644 --- a/bin/dtch.c +++ b/bin/dtch.c @@ -206,7 +206,7 @@ static int atch(int argc, char *argv[]) { if (error) err(EX_IOERR, "tcgetattr"); atexit(restoreTerm); - struct termios raw; + struct termios raw = saveTerm; cfmakeraw(&raw); error = tcsetattr(STDIN_FILENO, TCSADRAIN, &raw); if (error) err(EX_IOERR, "tcsetattr"); diff --git a/bin/hnel.c b/bin/hnel.c index 121d3fae..77332809 100644 --- a/bin/hnel.c +++ b/bin/hnel.c @@ -53,7 +53,7 @@ int main(int argc, char *argv[]) { if (error) err(EX_IOERR, "tcgetattr"); atexit(restoreTerm); - struct termios raw; + struct termios raw = saveTerm; cfmakeraw(&raw); error = tcsetattr(STDERR_FILENO, TCSADRAIN, &raw); if (error) err(EX_IOERR, "tcsetattr"); diff --git a/bin/modem.c b/bin/modem.c index 4b5e8eb2..394ebb72 100644 --- a/bin/modem.c +++ b/bin/modem.c @@ -47,7 +47,7 @@ int main(int argc, char *argv[]) { if (error) err(EX_IOERR, "tcgetattr"); atexit(restoreTerm); - struct termios raw; + struct termios raw = saveTerm; cfmakeraw(&raw); error = tcsetattr(STDIN_FILENO, TCSADRAIN, &raw); if (error) err(EX_IOERR, "tcsetattr"); -- cgit 1.4.1