diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2007-12-20 21:10:06 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2007-12-20 21:10:06 +0000 |
| commit | 889befc455b85f5b520d7f7d349dda472ae2e61e (patch) | |
| tree | 1cfec13fa90b42599aa31ca935614f34eeaa6797 | |
| parent | 0079ea20862674f6e761e400cadc031892f734b6 (diff) | |
Notes
| -rw-r--r-- | lib/libutil/pty.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/libutil/pty.c b/lib/libutil/pty.c index c94ce9926c78c..1fe8be247207d 100644 --- a/lib/libutil/pty.c +++ b/lib/libutil/pty.c @@ -55,6 +55,7 @@ static int new_openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize *winp) { + const char *slavename; int master, slave; master = posix_openpt(O_RDWR); @@ -66,7 +67,18 @@ new_openpty(int *amaster, int *aslave, char *name, struct termios *termp, return (-1); } - slave = open(ptsname(master), O_RDWR); + slavename = ptsname(master); + if (slavename == NULL) { + close(master); + return (-1); + } + + if (revoke(slavename) == -1) { + close(master); + return (-1); + } + + slave = open(slavename, O_RDWR); if (slave == -1) { close(master); return (-1); |
