]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - windows/winnet.c
Make Windows sockets non-inheritable
[PuTTY.git] / windows / winnet.c
index fb121e3f7ea681a9cf2645a5aa063c4a91429bdb..9875323744cda7ffbdf2377061231176debc848a 100644 (file)
@@ -774,6 +774,8 @@ static int ipv4_is_local_addr(struct in_addr addr)
        SOCKET s = p_socket(AF_INET, SOCK_DGRAM, 0);
        DWORD retbytes;
 
+       SetHandleInformation((HANDLE)s, HANDLE_FLAG_INHERIT, 0);
+
        if (p_WSAIoctl &&
            p_WSAIoctl(s, SIO_GET_INTERFACE_LIST, NULL, 0,
                       local_interfaces, sizeof(local_interfaces),
@@ -1022,6 +1024,8 @@ static DWORD try_connect(Actual_Socket sock)
        goto ret;
     }
 
+       SetHandleInformation((HANDLE)s, HANDLE_FLAG_INHERIT, 0);
+
     if (sock->oobinline) {
        BOOL b = TRUE;
        p_setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (void *) &b, sizeof(b));
@@ -1303,6 +1307,8 @@ Socket sk_newlistener(const char *srcaddr, int port, Plug plug,
        return (Socket) ret;
     }
 
+       SetHandleInformation((HANDLE)s, HANDLE_FLAG_INHERIT, 0);
+
     ret->oobinline = 0;
 
     p_setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (const char *)&on, sizeof(on));