25 lines
734 B
Diff
25 lines
734 B
Diff
|
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 <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include <unistd.h>
|
||
|
+#include <fcntl.h>
|
||
|
|
||
|
#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)
|