Request for review & approval: 8141260: isReachable crash in windows xp

Mark Sheppard mark.sheppard at oracle.com
Wed Nov 25 18:27:49 UTC 2015


yes, the fix looks fine, and I verified the individual isReachable test 
on the test host where it failed.

it is possible to refactor the function

Java_java_net_Inet4AddressImpl_isReachable0

a little,  by extracting the newly re-introduced "else" block into its 
own function
e.g. wxp_ping4

such that

if (isVistaSP1OrGreater()) {
         jint src_addr = 0;
         jint dest_addr = 0;
         jbyte caddr[4];
         int sz;
     
         /**
          * Convert IP address from byte array to integer
          */
         sz = (*env)->GetArrayLength(env, addrArray);
         if (sz != 4) {
           return JNI_FALSE;
         }
         memset((char *) caddr, 0, sizeof(caddr));
         (*env)->GetByteArrayRegion(env, addrArray, 0, 4, caddr);
         dest_addr = ((caddr[0]<<24) & 0xff000000);
         dest_addr |= ((caddr[1] <<16) & 0xff0000);
         dest_addr |= ((caddr[2] <<8) & 0xff00);
         dest_addr |= (caddr[3] & 0xff);
         dest_addr = htonl(dest_addr);
     
         /**
          * If a network interface was specified, let's convert its address
          * as well.
          */
         if (!(IS_NULL(ifArray))) {
             memset((char *) caddr, 0, sizeof(caddr));
             (*env)->GetByteArrayRegion(env, ifArray, 0, 4, caddr);
             src_addr = ((caddr[0]<<24) & 0xff000000);
             src_addr |= ((caddr[1] <<16) & 0xff0000);
             src_addr |= ((caddr[2] <<8) & 0xff00);
             src_addr |= (caddr[3] & 0xff);
             src_addr = htonl(src_addr);
         }
     
         return ping4(env, src_addr, dest_addr, timeout);
     } else {
         wxp_ping4(env, this, addrArray, timeout, ifArray, ttl)
     }



regards
Mark

On 25/11/2015 15:32, Seán Coffey wrote:
> Looks ok to me Rob and provides a re-introduction of the old 
> Java_java_net_Inet4AddressImpl_isReachable0 function for XP systems 
> where necessary. Reviewed.
>
> Approved for jdk8u-dev also.
>
> Regards,
> Sean.
>
> On 25/11/15 14:00, Rob McKenna wrote:
>> forgot to cc net-dev
>>
>>     -Rob
>>
>> On 24/11/15 16:37, Rob McKenna wrote:
>>> Hi folks,
>>>
>>> The recently updated ICMP (8133015) code fails on Windows XP due to a
>>> missing api. This fix allows XP to fall back to the old tcp based 
>>> method:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8141260
>>> http://cr.openjdk.java.net/~robm/8141260/webrev.01/
>>>
>>>      -Rob
>



More information about the jdk8u-dev mailing list