Commit 0b827cbc authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Fix another case of bug 8206; patch from flupzor

parent eff1cfaa
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -1172,10 +1172,22 @@ tor_socketpair(int family, int type, int protocol, tor_socket_t fd[2])
    return -errno;

#if defined(FD_CLOEXEC)
  if (SOCKET_OK(fd[0]))
    fcntl(fd[0], F_SETFD, FD_CLOEXEC);
  if (SOCKET_OK(fd[1]))
    fcntl(fd[1], F_SETFD, FD_CLOEXEC);
  if (SOCKET_OK(fd[0])) {
    r = fcntl(fd[0], F_SETFD, FD_CLOEXEC);
    if (r == -1) {
      close(fd[0]);
      close(fd[1]);
      return -errno;
    }
  }
  if (SOCKET_OK(fd[1])) {
    r = fcntl(fd[1], F_SETFD, FD_CLOEXEC);
    if (r == -1) {
      close(fd[0]);
      close(fd[1]);
      return -errno;
    }
  }
#endif
  goto sockets_ok; /* So that sockets_ok will not be unused. */