summaryrefslogtreecommitdiffstats
path: root/pty.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2000-03-02 23:56:12 +1100
committerDamien Miller <djm@mindrot.org>2000-03-02 23:56:12 +1100
commit204ad074e51c0e9c25666eb044e4c255bcfe64b6 (patch)
tree4c436060e703711ea7fb31ae55329ae414cf86f8 /pty.c
parentc4cea3e5c71c8f2d48ee22ea05d26a47fb47ad29 (diff)
- Warning was valid - possible race condition on PTYs. Avoided using
platform-specific code. - Document some common problems
Diffstat (limited to 'pty.c')
-rw-r--r--pty.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/pty.c b/pty.c
index 27e0fe9e..4c2dc9cf 100644
--- a/pty.c
+++ b/pty.c
@@ -14,7 +14,7 @@
*/
#include "includes.h"
-RCSID("$Id: pty.c,v 1.13 2000/03/02 12:31:50 damien Exp $");
+RCSID("$Id: pty.c,v 1.14 2000/03/02 12:56:13 damien Exp $");
#ifdef HAVE_UTIL_H
# include <util.h>
@@ -187,10 +187,12 @@ pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, int namebuflen)
void
pty_release(const char *ttyname)
{
- if ((chown(ttyname, (uid_t) 0, (gid_t) 0) < 0) && (errno != ENOENT))
+#ifndef PTY_REMOVED_ON_CLOSE
+ if (chown(ttyname, (uid_t) 0, (gid_t) 0) < 0)
error("chown %.100s 0 0 failed: %.100s", ttyname, strerror(errno));
- if ((chmod(ttyname, (mode_t) 0666) < 0) && (errno != ENOENT))
+ if (chmod(ttyname, (mode_t) 0666) < 0)
error("chmod %.100s 0666 failed: %.100s", ttyname, strerror(errno));
+#endif /* PTY_REMOVED_ON_CLOSE */
}
/* Makes the tty the processes controlling tty and sets it to sane modes. */