diff options
Diffstat (limited to 'ssh.c')
-rw-r--r-- | ssh.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -40,7 +40,7 @@ | |||
40 | */ | 40 | */ |
41 | 41 | ||
42 | #include "includes.h" | 42 | #include "includes.h" |
43 | RCSID("$OpenBSD: ssh.c,v 1.227 2004/09/15 00:46:01 deraadt Exp $"); | 43 | RCSID("$OpenBSD: ssh.c,v 1.228 2004/09/23 13:00:04 djm Exp $"); |
44 | 44 | ||
45 | #include <openssl/evp.h> | 45 | #include <openssl/evp.h> |
46 | #include <openssl/err.h> | 46 | #include <openssl/err.h> |
@@ -1249,11 +1249,20 @@ static void | |||
1249 | control_client(const char *path) | 1249 | control_client(const char *path) |
1250 | { | 1250 | { |
1251 | struct sockaddr_un addr; | 1251 | struct sockaddr_un addr; |
1252 | int i, r, sock, exitval, num_env, addr_len; | 1252 | int i, r, fd, sock, exitval, num_env, addr_len; |
1253 | Buffer m; | 1253 | Buffer m; |
1254 | char *cp; | 1254 | char *cp; |
1255 | extern char **environ; | 1255 | extern char **environ; |
1256 | 1256 | ||
1257 | if (stdin_null_flag) { | ||
1258 | if ((fd = open(_PATH_DEVNULL, O_RDONLY)) == -1) | ||
1259 | fatal("open(/dev/null): %s", strerror(errno)); | ||
1260 | if (dup2(fd, STDIN_FILENO) == -1) | ||
1261 | fatal("dup2: %s", strerror(errno)); | ||
1262 | if (fd > STDERR_FILENO) | ||
1263 | close(fd); | ||
1264 | } | ||
1265 | |||
1257 | memset(&addr, '\0', sizeof(addr)); | 1266 | memset(&addr, '\0', sizeof(addr)); |
1258 | addr.sun_family = AF_UNIX; | 1267 | addr.sun_family = AF_UNIX; |
1259 | addr_len = offsetof(struct sockaddr_un, sun_path) + | 1268 | addr_len = offsetof(struct sockaddr_un, sun_path) + |