diff -up openssh-4.7p1/sshconnect.c.cloexec openssh-4.7p1/sshconnect.c --- openssh-4.7p1/sshconnect.c.cloexec 2006-10-23 19:02:24.000000000 +0200 +++ openssh-4.7p1/sshconnect.c 2008-02-05 23:14:28.000000000 +0100 @@ -38,6 +38,7 @@ #include #include #include +#include #include "xmalloc.h" #include "key.h" @@ -189,8 +190,11 @@ ssh_create_socket(int privileged, struct return sock; } sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); - if (sock < 0) + if (sock < 0) { error("socket: %.100s", strerror(errno)); + return -1; + } + fcntl(sock, F_SETFD, FD_CLOEXEC); /* Bind the socket to an alternative local IP address */ if (options.bind_address == NULL)