summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2007-12-20 21:10:06 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2007-12-20 21:10:06 +0000
commit889befc455b85f5b520d7f7d349dda472ae2e61e (patch)
tree1cfec13fa90b42599aa31ca935614f34eeaa6797
parent0079ea20862674f6e761e400cadc031892f734b6 (diff)
Notes
-rw-r--r--lib/libutil/pty.c14
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);