summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-07-25 16:40:23 -0400
committerJune McEnroe <june@causal.agency>2018-07-25 16:40:23 -0400
commit8a58379ece89299bd831d92706da67499eb01225 (patch)
treef93bbbc6a443b1657d8e001967003c0194c956bb
parentRemove nasm from install (diff)
downloadsrc-8a58379ece89299bd831d92706da67499eb01225.tar.gz
src-8a58379ece89299bd831d92706da67499eb01225.zip
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.
Diffstat (limited to '')
-rw-r--r--bin/dtch.c2
-rw-r--r--bin/hnel.c2
-rw-r--r--bin/modem.c2
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");