Problem with getFlags() method in NetworkInterface.c

Shirish Kuncolienkar shirishk at linux.vnet.ibm.com
Thu Aug 9 06:16:18 PDT 2012


On 8/9/2012 4:55 PM, Chris Hegarty wrote:
> Shirish,
>
> I am not familiar with VIPA interfaces, but I don't see any 
> documentation that describes allowable values for flags that could 
> cause the integer representing it to contain a negative value.
>
> I'm not opposed to the source changes, I just don't see that they are 
> required. Can you please help explain?
>
> Thanks,
> -Chris.
>
> On 09/08/12 11:16, Shirish Kuncolienkar wrote:
>> Hi,
>>
>> The return value from the getFlags() method in NetworkInterface.c is
>> interpreted in 2 ways.
>> - If the value is negative an Exception is thrown
>> - Else the return value is considered as the flag mask obtained via the
>> ioctl call.
>>
>> In rare cases is it possible the value in the ifr_flags could be
>> negative.  One such case is VIPA interfaces.  any calls like isUp() on
>> such network interfaces would end up in a Socket Exception.
>> I have patch for this.  Anyone would like to take a look ?
>>
>> http://cr.openjdk.java.net/~luchsh/webrev20120809/
>>
>> -Shirish
>>
>
Chris,

I agree there is no general documentation available, AIX defines vipa 
interface flag as "0x80000000"
Here is a similar bug report related to FreeBSD 
http://hg.openjdk.java.net/macosx-port/macosx-port/jdk/rev/c6334146005c.
A different fix was proposed here.

Hope this helps.

Thanks
-Shirish




More information about the net-dev mailing list