From 4f78dfcabc1500bef891039d3bcb73253468339a Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Mon, 26 Mar 2012 17:00:45 +0200 Subject: [PATCH] libutil: add O_NOCTTY to old pty open code . fixes e.g. ssh sessions not getting their own controlling tty (causing ^C getting broadcast to too many processes) . previously (before -lutil) handled like this by bsd-openpty.c in openssh . reported by Andy Kosela, debugged by ThomasV --- lib/libutil/pty.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libutil/pty.c b/lib/libutil/pty.c index 6a0e0c304..dc1bee630 100644 --- a/lib/libutil/pty.c +++ b/lib/libutil/pty.c @@ -105,7 +105,7 @@ openpty(int *amaster, int *aslave, char *name, struct termios *term, for (cp = cp2 = TTY_OLD_SUFFIX TTY_NEW_SUFFIX; *cp2; cp2++) { line[5] = 'p'; line[9] = *cp2; - if ((master = open(line, O_RDWR, 0)) == -1) { + if ((master = open(line, O_RDWR | O_NOCTTY, 0)) == -1) { if (errno != ENOENT) continue; /* busy */ if ((size_t)(cp2 - cp + 1) < sizeof(TTY_OLD_SUFFIX)) @@ -120,7 +120,7 @@ openpty(int *amaster, int *aslave, char *name, struct termios *term, #ifndef __minix revoke(line) == 0 && #endif - (slave = open(line, O_RDWR, 0)) != -1) { + (slave = open(line, O_RDWR | O_NOCTTY, 0)) != -1) { #ifndef __minix gotit: #endif