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
This commit is contained in:
parent
9cca9d7566
commit
4f78dfcabc
1 changed files with 2 additions and 2 deletions
|
@ -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++) {
|
for (cp = cp2 = TTY_OLD_SUFFIX TTY_NEW_SUFFIX; *cp2; cp2++) {
|
||||||
line[5] = 'p';
|
line[5] = 'p';
|
||||||
line[9] = *cp2;
|
line[9] = *cp2;
|
||||||
if ((master = open(line, O_RDWR, 0)) == -1) {
|
if ((master = open(line, O_RDWR | O_NOCTTY, 0)) == -1) {
|
||||||
if (errno != ENOENT)
|
if (errno != ENOENT)
|
||||||
continue; /* busy */
|
continue; /* busy */
|
||||||
if ((size_t)(cp2 - cp + 1) < sizeof(TTY_OLD_SUFFIX))
|
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
|
#ifndef __minix
|
||||||
revoke(line) == 0 &&
|
revoke(line) == 0 &&
|
||||||
#endif
|
#endif
|
||||||
(slave = open(line, O_RDWR, 0)) != -1) {
|
(slave = open(line, O_RDWR | O_NOCTTY, 0)) != -1) {
|
||||||
#ifndef __minix
|
#ifndef __minix
|
||||||
gotit:
|
gotit:
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue