src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c

Print this page

        

*** 333,342 **** --- 333,344 ---- fd_set tbl; struct timeval t = { 0, 0 }; struct sockaddr_in rmtaddr; int addrlen = sizeof(rmtaddr); + memset((char *)&rmtaddr, 0, sizeof(rmtaddr)); + /* * A no-op if this OS doesn't support it. */ if (!supportPortUnreachable()) { return JNI_FALSE;
*** 429,441 **** int fd, fd1, family; int ipv6_supported = ipv6_available(); SOCKETADDRESS lcladdr; ! int lcladdrlen; int address; family = getInetAddress_family(env, addressObj); if (family == IPv6 && !ipv6_supported) { JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Protocol family not supported"); return; --- 431,445 ---- int fd, fd1, family; int ipv6_supported = ipv6_available(); SOCKETADDRESS lcladdr; ! 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", "Protocol family not supported"); return;
*** 615,633 **** /* disconnect doesn't throw any exceptions */ return; } fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID); ! memset(&addr, 0, len); connect(fd, (struct sockaddr *)&addr, len); /* * use SIO_UDP_CONNRESET * to disable ICMP port unreachable handling here. */ if (xp_or_later) { ! DWORD x1, x2; /* ignored result codes */ int t = FALSE; WSAIoctl(fd,SIO_UDP_CONNRESET,&t,sizeof(t),&x1,sizeof(x1),&x2,0,0); } } --- 619,637 ---- /* disconnect doesn't throw any exceptions */ return; } fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID); ! memset((char *)&addr, 0, len); connect(fd, (struct sockaddr *)&addr, len); /* * use SIO_UDP_CONNRESET * to disable ICMP port unreachable handling here. */ if (xp_or_later) { ! 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); } }
*** 653,664 **** jbyteArray packetBuffer; jboolean connected; SOCKETADDRESS rmtaddr; SOCKETADDRESS *addrp = &rmtaddr; ! int addrlen; if (IS_NULL(packet)) { JNU_ThrowNullPointerException(env, "null packet"); return; } --- 657,669 ---- jbyteArray packetBuffer; jboolean connected; SOCKETADDRESS rmtaddr; SOCKETADDRESS *addrp = &rmtaddr; ! int addrlen = 0; + memset((char *)&rmtaddr, 0, sizeof(rmtaddr)); if (IS_NULL(packet)) { JNU_ThrowNullPointerException(env, "null packet"); return; }
*** 1442,1452 **** JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException", "operation interrupted"); } else if (n < 0) { NET_ThrowCurrent(env, "Datagram receive failed"); } else { ! int port; jobject packetAddress; /* * Check if there is an InetAddress already associated with this * packet. If so we check if it is the same source address. We --- 1447,1457 ---- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException", "operation interrupted"); } else if (n < 0) { NET_ThrowCurrent(env, "Datagram receive failed"); } else { ! int port = 0; jobject packetAddress; /* * Check if there is an InetAddress already associated with this * packet. If so we check if it is the same source address. We
*** 1820,1834 **** JNIEXPORT void JNICALL Java_java_net_TwoStacksPlainDatagramSocketImpl_socketNativeSetOption(JNIEnv *env,jobject this, jint opt,jobject value) { int fd=-1, fd1=-1; ! int levelv4, levelv6, optnamev4, optnamev6, optlen; union { int i; char c; ! } optval; int ipv6_supported = ipv6_available(); fd = getFD(env, this); if (ipv6_supported) { fd1 = getFD1(env, this); --- 1825,1839 ---- JNIEXPORT void JNICALL Java_java_net_TwoStacksPlainDatagramSocketImpl_socketNativeSetOption(JNIEnv *env,jobject this, jint opt,jobject value) { int fd=-1, fd1=-1; ! int levelv4 = 0, levelv6 = 0, optnamev4 = 0, optnamev6 = 0, optlen = 0; union { int i; char c; ! } optval = { 0 }; int ipv6_supported = ipv6_available(); fd = getFD(env, this); if (ipv6_supported) { fd1 = getFD1(env, this);
*** 2191,2201 **** int fd=-1, fd1=-1; int level, optname, optlen; union { int i; ! } optval; int ipv6_supported = ipv6_available(); fd = getFD(env, this); if (ipv6_supported) { fd1 = getFD1(env, this); --- 2196,2206 ---- int fd=-1, fd1=-1; int level, optname, optlen; union { int i; ! } optval = {0}; int ipv6_supported = ipv6_available(); fd = getFD(env, this); if (ipv6_supported) { fd1 = getFD1(env, this);
*** 2442,2457 **** SOCKETADDRESS name; struct ip_mreq mname; struct ipv6_mreq mname6; struct in_addr in; ! DWORD ifindex; int len, family; int ipv6_supported = ipv6_available(); int cmd ; if (IS_NULL(fdObj) && IS_NULL(fd1Obj)) { JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); return; } --- 2447,2465 ---- SOCKETADDRESS name; struct ip_mreq mname; struct ipv6_mreq mname6; struct in_addr in; ! 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"); return; }