Browse Source

Actually use the cloexec argument in the !defined(SOCK_CLOEXEC) case

Nick Mathewson 11 years ago
parent
commit
e25eb35f11
1 changed files with 6 additions and 4 deletions
  1. 6 4
      src/common/compat.c

+ 6 - 4
src/common/compat.c

@@ -1084,10 +1084,12 @@ tor_open_socket_with_extensions(int domain, int type, int protocol,
     return s;
 
 #if defined(FD_CLOEXEC)
-  if (fcntl(s, F_SETFD, FD_CLOEXEC) == -1) {
-    log_warn(LD_FS,"Couldn't set FD_CLOEXEC: %s", strerror(errno));
-    tor_close_socket_simple(s);
-    return TOR_INVALID_SOCKET;
+  if (cloexec) {
+    if (fcntl(s, F_SETFD, FD_CLOEXEC) == -1) {
+      log_warn(LD_FS,"Couldn't set FD_CLOEXEC: %s", strerror(errno));
+      tor_close_socket_simple(s);
+      return TOR_INVALID_SOCKET;
+    }
   }
 #endif