--- old/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c Tue Jan 27 16:08:46 2015 +++ new/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c Tue Jan 27 16:08:46 2015 @@ -335,6 +335,8 @@ struct sockaddr_in rmtaddr; int addrlen = sizeof(rmtaddr); + memset((char *)&rmtaddr, 0, sizeof(rmtaddr)); + /* * A no-op if this OS doesn't support it. */ @@ -431,9 +433,11 @@ int ipv6_supported = ipv6_available(); SOCKETADDRESS lcladdr; - int lcladdrlen; + int lcladdrlen = sizeof(lcladdr); int address; + memset((char *)&lcladdr, 0, sizeof(lcladdr)); + family = getInetAddress_family(env, addressObj); if (family == IPv6 && !ipv6_supported) { JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", @@ -617,7 +621,7 @@ } fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID); - memset(&addr, 0, len); + memset((char *)&addr, 0, len); connect(fd, (struct sockaddr *)&addr, len); /* @@ -625,7 +629,7 @@ * to disable ICMP port unreachable handling here. */ if (xp_or_later) { - DWORD x1, x2; /* ignored result codes */ + DWORD x1 = 0, x2 = 0; /* ignored result codes */ int t = FALSE; WSAIoctl(fd,SIO_UDP_CONNRESET,&t,sizeof(t),&x1,sizeof(x1),&x2,0,0); } @@ -655,8 +659,9 @@ SOCKETADDRESS rmtaddr; SOCKETADDRESS *addrp = &rmtaddr; - int addrlen; + int addrlen = 0; + memset((char *)&rmtaddr, 0, sizeof(rmtaddr)); if (IS_NULL(packet)) { JNU_ThrowNullPointerException(env, "null packet"); @@ -1444,7 +1449,7 @@ } else if (n < 0) { NET_ThrowCurrent(env, "Datagram receive failed"); } else { - int port; + int port = 0; jobject packetAddress; /* @@ -1822,11 +1827,11 @@ jint opt,jobject value) { int fd=-1, fd1=-1; - int levelv4, levelv6, optnamev4, optnamev6, optlen; + int levelv4 = 0, levelv6 = 0, optnamev4 = 0, optnamev6 = 0, optlen = 0; union { int i; char c; - } optval; + } optval = { 0 }; int ipv6_supported = ipv6_available(); fd = getFD(env, this); @@ -2193,7 +2198,7 @@ int level, optname, optlen; union { int i; - } optval; + } optval = {0}; int ipv6_supported = ipv6_available(); fd = getFD(env, this); @@ -2444,12 +2449,15 @@ struct ipv6_mreq mname6; struct in_addr in; - DWORD ifindex; + DWORD ifindex = 0; int len, family; int ipv6_supported = ipv6_available(); int cmd ; + memset((char *)&in, 0, sizeof(in)); + memset((char *)&name, 0, sizeof(name)); + if (IS_NULL(fdObj) && IS_NULL(fd1Obj)) { JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed");