- djm@cvs.openbsd.org 2005/09/13 23:40:07
     [sshd.c ssh.c misc.h sftp.c ssh-keygen.c ssh-keysign.c sftp-server.c
     scp.c misc.c ssh-keyscan.c ssh-add.c ssh-agent.c]
     ensure that stdio fds are attached; ok deraadt@
diff --git a/misc.c b/misc.c
index 2dd8ae6..27b947f 100644
--- a/misc.c
+++ b/misc.c
@@ -24,7 +24,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: misc.c,v 1.34 2005/07/08 09:26:18 dtucker Exp $");
+RCSID("$OpenBSD: misc.c,v 1.35 2005/09/13 23:40:07 djm Exp $");
 
 #include "misc.h"
 #include "log.h"
@@ -507,6 +507,26 @@
 	return -1;
 }
 
+void
+sanitise_stdfd(void)
+{
+	int nullfd;
+
+	if ((nullfd = open(_PATH_DEVNULL, O_RDWR)) == -1) {
+		fprintf(stderr, "Couldn't open /dev/null: %s", strerror(errno));
+		exit(1);
+	}
+	while (nullfd < 2) {
+		if (dup2(nullfd, nullfd + 1) == -1) {
+			fprintf(stderr, "dup2: %s", strerror(errno));
+			exit(1);
+		}
+		nullfd++;
+	}
+	if (nullfd > 2)
+		close(nullfd);
+}
+
 char *
 tohex(const u_char *d, u_int l)
 {