From: Ben Gras Date: Mon, 26 Mar 2012 15:00:45 +0000 (+0200) Subject: libutil: add O_NOCTTY to old pty open code X-Git-Tag: v3.2.1~639 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/zpipe.c?a=commitdiff_plain;h=4f78dfcabc1500bef891039d3bcb73253468339a;p=minix.git 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 --- 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