--- a/src/java.base/windows/native/libnet/TwoStacksPlainDatagramSocketImpl.c Wed Jul 18 14:44:04 2018 -0700
+++ b/src/java.base/windows/native/libnet/TwoStacksPlainDatagramSocketImpl.c Thu Jan 18 13:55:26 2018 +0530
@@ -228,7 +228,7 @@
"Protocol family not supported");
return;
}
-
+ JNU_CHECK_EXCEPTION(env);
if (IS_NULL(fdObj) || (ipv6_supported && IS_NULL(fd1Obj))) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "socket closed");
return;
@@ -344,6 +344,7 @@
}
family = getInetAddress_family(env, address);
+ JNU_CHECK_EXCEPTION(env);
if (family == java_net_InetAddress_IPv6 && !ipv6_available()) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
"Protocol family not supported");
@@ -455,6 +456,7 @@
}
family = getInetAddress_family(env, iaObj);
+ JNU_CHECK_EXCEPTION(env);
if (family == java_net_InetAddress_IPv4) {
fdObj = (*env)->GetObjectField(env, this, pdsi_fdID);
} else {
@@ -584,6 +586,7 @@
return -1;
} else {
address = getInetAddress_addr(env, addressObj);
+ JNU_CHECK_EXCEPTION_RETURN(env, -1);
/* We only handle IPv4 for now. Will support IPv6 once its in the os */
family = AF_INET;
}
@@ -657,7 +660,9 @@
return 0;
}
setInetAddress_addr(env, addressObj, ntohl(remote_addr.sa4.sin_addr.s_addr));
+ JNU_CHECK_EXCEPTION_RETURN(env, -1);
setInetAddress_family(env, addressObj, java_net_InetAddress_IPv4);
+ JNU_CHECK_EXCEPTION_RETURN(env, -1);
/* return port */
return ntohs(remote_addr.sa4.sin_port);
@@ -1349,6 +1354,7 @@
int fam;
addr = (*env)->GetObjectArrayElement(env, addrArray, i);
fam = getInetAddress_family(env, addr);
+ JNU_CHECK_EXCEPTION_RETURN(env, -1);
if (fam == family) {
*iaddr = addr;
return 0;
@@ -1367,6 +1373,7 @@
}
iaddr->s_addr = htonl(getInetAddress_addr(env, addr));
+ JNU_CHECK_EXCEPTION_RETURN(env, -1);
return 0;
}
@@ -1471,6 +1478,7 @@
struct in_addr in;
in.s_addr = htonl(getInetAddress_addr(env, value));
+ JNU_CHECK_EXCEPTION(env);
if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF,
(const char*)&in, sizeof(in)) < 0) {
JNU_ThrowByNameWithMessageAndLastError
@@ -1712,7 +1720,7 @@
CHECK_NULL_RETURN(addr, NULL);
setInetAddress_addr(env, addr, ntohl(in.s_addr));
-
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
/*
* For IP_MULTICAST_IF return InetAddress
*/