summaryrefslogtreecommitdiff
path: root/sshpty.c
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2010-01-01 17:15:23 +0000
committerColin Watson <cjwatson@debian.org>2010-01-01 17:15:23 +0000
commit99b402ea4c8457b0a3cafff37f5b3410a8dc6476 (patch)
tree1d24ce54c9981ea8cbb4c5a9309964a0e4c4b320 /sshpty.c
parent87552344215a38d3a2b0d4d63dc151e05978bbe1 (diff)
parent54af7a4ae8d455791a631bdfaade4b64436ae16a (diff)
import openssh-5.2p1-gsskex-all-20090726.patch
Diffstat (limited to 'sshpty.c')
-rw-r--r--sshpty.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sshpty.c b/sshpty.c
index 5a0d1a7ad..bbbc0fefe 100644
--- a/sshpty.c
+++ b/sshpty.c
@@ -46,6 +46,13 @@
46#define O_NOCTTY 0 46#define O_NOCTTY 0
47#endif 47#endif
48 48
49#ifdef __APPLE__
50# include <AvailabilityMacros.h>
51# if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
52# define __APPLE_PRIVPTY__
53# endif
54#endif
55
49/* 56/*
50 * Allocates and opens a pty. Returns 0 if no pty could be allocated, or 57 * Allocates and opens a pty. Returns 0 if no pty could be allocated, or
51 * nonzero if a pty was successfully allocated. On success, open file 58 * nonzero if a pty was successfully allocated. On success, open file
@@ -78,10 +85,12 @@ pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen)
78void 85void
79pty_release(const char *tty) 86pty_release(const char *tty)
80{ 87{
88#ifndef __APPLE_PRIVPTY__
81 if (chown(tty, (uid_t) 0, (gid_t) 0) < 0) 89 if (chown(tty, (uid_t) 0, (gid_t) 0) < 0)
82 error("chown %.100s 0 0 failed: %.100s", tty, strerror(errno)); 90 error("chown %.100s 0 0 failed: %.100s", tty, strerror(errno));
83 if (chmod(tty, (mode_t) 0666) < 0) 91 if (chmod(tty, (mode_t) 0666) < 0)
84 error("chmod %.100s 0666 failed: %.100s", tty, strerror(errno)); 92 error("chmod %.100s 0666 failed: %.100s", tty, strerror(errno));
93#endif /* __APPLE_PRIVPTY__ */
85} 94}
86 95
87/* Makes the tty the process's controlling tty and sets it to sane modes. */ 96/* Makes the tty the process's controlling tty and sets it to sane modes. */