changeset 795:a8132d72370c

8019969: nioNetworkChannelInet6/SetOptionGetOptionTestInet6 test case crashes Reviewed-by: chegar
author michaelm
date Mon, 15 Jul 2013 16:00:57 +0100
parents bac5d0b01156
children 42cdf6988c2b
files src/windows/native/java/net/net_util_md.c
diffstat 1 files changed, 2 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/windows/native/java/net/net_util_md.c	Tue Oct 29 01:32:58 2013 +0000
+++ b/src/windows/native/java/net/net_util_md.c	Mon Jul 15 16:00:57 2013 +0100
@@ -879,7 +879,6 @@
     family = (iafam == IPv4)? AF_INET : AF_INET6;
     if (ipv6_available() && !(family == AF_INET && v4MappedAddress == JNI_FALSE)) {
         struct SOCKADDR_IN6 *him6 = (struct SOCKADDR_IN6 *)him;
-        jbyteArray ipaddress;
         jbyte caddr[16];
         jint address, scopeid = 0;
         jint cached_scope_id = 0;
@@ -900,10 +899,9 @@
                 caddr[15] = (address & 0xff);
             }
         } else {
-            ipaddress = (*env)->GetObjectField(env, iaObj, ia6_ipaddressID);
-            scopeid = (jint)(*env)->GetIntField(env, iaObj, ia6_scopeidID);
+            getInet6Address_ipaddress(env, iaObj, (char *)caddr);
+            scopeid = getInet6Address_scopeid(env, iaObj);
             cached_scope_id = (jint)(*env)->GetIntField(env, iaObj, ia6_cachedscopeidID);
-            (*env)->GetByteArrayRegion(env, ipaddress, 0, 16, caddr);
         }
 
         memset((char *)him6, 0, sizeof(struct SOCKADDR_IN6));