java-1_8_0-openjdk/8196224.patch

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;
}