RFR[10]: JDK-8023649 - java.net.NetworkInterface.getInterfaceAddresses() call flow clean up

vyom tewari vyom.tewari at oracle.com
Wed Sep 13 03:16:36 UTC 2017


Hi Mark,

Thanks for doing this, i see that "createNetworkInterface" method is 
getting called from multiple places in NetworkInterface.c there is 
pending JNI Exception at line 695 in NetworkInterface.c. I am not sure 
if it is safe to call "(*env)->ReleaseStringUTFChars" even if there is 
pending JNI Exception.

Thanks,

Vyom


On Tuesday 12 September 2017 10:50 PM, Mark Sheppard wrote:
> Hi,
>     please oblige and review the follows changes:
> http://cr.openjdk.java.net/~msheppar/8023649/webrev/
>
> for the issue:
> https://bugs.openjdk.java.net/browse/JDK-8023649
>
> This is performed under the auspices of reliability, robustness and 
> stability.
> * As such, a number of error checks are amended to free malloc-ed memory,
> * to add consistency to the code, additional ExceptionCheck have been 
> added as a post  SetObjectArrayElement invocation check,
> * A long standing issue reporting that 
> NetworkInterface::getInterfacesAddresses can throw an NPE has been 
> addressed.
> The context for such a failure is that there is an IPv4 only 
> configuration and that configuration is incorrect in its setting.
> This may lead to the bindings array being allocated, but expected 
> InterfaceAddress objects not allocated
> and set in the array .... so the bindings array implicitly contains 
> null references.
>
> In NetworkInterface.c  the function
> createNetworkInterface
> performs a check on an address mask which may lead to skipping the 
> code block handling the InterfaceAddress allocation.
>
> regards
> Mark



More information about the net-dev mailing list