41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
--- icedtea-3.8.0/openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2018-09-18 09:49:08.188198047 +0200
|
|
+++ icedtea-3.8.0/openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2018-09-18 09:49:25.544292368 +0200
|
|
@@ -1045,6 +1045,7 @@
|
|
struct in_addr in;
|
|
jobjectArray addrArray;
|
|
jsize len;
|
|
+ jint family;
|
|
jobject addr;
|
|
int i;
|
|
|
|
@@ -1074,7 +1075,9 @@
|
|
*/
|
|
for (i = 0; i < len; i++) {
|
|
addr = (*env)->GetObjectArrayElement(env, addrArray, i);
|
|
- if (getInetAddress_family(env, addr) == IPv4) {
|
|
+ family = getInetAddress_family(env, addr);
|
|
+ JNU_CHECK_EXCEPTION(env);
|
|
+ if (family == IPv4) {
|
|
JNU_CHECK_EXCEPTION(env);
|
|
in.s_addr = htonl(getInetAddress_addr(env, addr));
|
|
JNU_CHECK_EXCEPTION(env);
|
|
@@ -1939,6 +1942,7 @@
|
|
|
|
jobject fdObj = (*env)->GetObjectField(env, this, pdsi_fdID);
|
|
jint fd;
|
|
+ jint family;
|
|
jint ipv6_join_leave;
|
|
|
|
if (IS_NULL(fdObj)) {
|
|
@@ -1960,7 +1964,9 @@
|
|
ipv6_join_leave = ipv6_available();
|
|
|
|
#ifdef __linux__
|
|
- if (getInetAddress_family(env, iaObj) == IPv4) {
|
|
+ family = getInetAddress_family(env, iaObj);
|
|
+ JNU_CHECK_EXCEPTION(env);
|
|
+ if (family == IPv4) {
|
|
JNU_CHECK_EXCEPTION(env);
|
|
ipv6_join_leave = JNI_FALSE;
|
|
}
|