RFR-JDK8012108

John Zavgren john.zavgren at oracle.com
Wed Apr 24 08:35:49 PDT 2013


Dmitry:
Thanks for your comments

 From my reading of the code for the procedure: getAddrsFromAdapter(...):

If *netaddrPP == NULL at line 369, and a jump is made to 
"freeAllocatedMemory" because of a calloc() failure, then obviously the 
assignment operation on line 429 (*netaddrPP = start) is skipped, and 
*netaddrPP remains NULL... and consequently the "block":
     if (*netaddrPP != NULL) {
         // We started with an existing list
         curr=start->next;
         start->next = NULL;
         start = curr;
     }
is not executed (and no references are made to start->next).

On the other hand, if *netaddrPP == NULL at line 369 and no errors 
occur, we make the assignment:
*netaddrPP = start at line 429 and return immediately (without 
considering start->next).

If you see any errors in my thinking, please let me know.
Thanks!
John


On 04/20/2013 07:40 AM, Dmitry Samersoff wrote:
> Kurchi,
>
> if  *netaddrPP == NULL at 367 and calloc fails at 391 we would jump
> to freeAllocatedMemory with start == NULL
>
>
> I have no ideas whether this code path is possible in reality or not,
> but it stops my eyes.
>
> -Dmitry
>
>
> On 2013-04-20 14:55, Kurchi Subhra Hazra wrote:
>>
>> On Apr 20, 2013, at 3:16 AM, Dmitry Samersoff <dmitry.samersoff at oracle.com> wrote:
>>
>>> John,
>>>
>>> 102, 145 else is redundant.
>>>
>>> 438  - we will crash here if start is null
>>
>> Maybe it is good to have an additional check for start != null, but from what I see, start will not be null if *netaddrPP is not null.
>>
>>
>>
>>
>>
>>> -Dmitry
>>>
>>>
>>> On 2013-04-20 01:33, John Zavgren wrote:
>>>> Greetings:
>>>>
>>>> I fixed the bad realloc pattern. Please let me know what you think.
>>>> http://cr.openjdk.java.net/~jzavgren/8012108/webrev.02/
>>>>
>>>> Thanks!
>>>> John Z
>>>>
>>>>
>>>> ----- Original Message -----
>>>> From: chris.hegarty at oracle.com
>>>> To: net-dev at openjdk.java.net, john.zavgren at oracle.com
>>>> Cc: Dmitry.Samersoff at oracle.com
>>>> Sent: Friday, April 19, 2013 8:59:25 AM GMT -05:00 US/Canada Eastern
>>>> Subject: Re: RFR-JDK8012108
>>>>
>>>> On 18/04/2013 22:11, Dmitry Samersoff wrote:
>>>>> John,
>>>>>
>>>>> I see bad realloc pattern here. Could you fix it as well?
>>>> Yes, please. Otherwise the changes look fine.
>>>>
>>>> -Chris.
>>>>
>>>>> e.g.
>>>>>
>>>>> 93     adapterInfo = (IP_ADAPTER_ADDRESSES *) realloc (adapterInfo, len);
>>>>>
>>>>> -Dmitry
>>>>>
>>>>> On 2013-04-19 00:56, John Zavgren wrote:
>>>>>> Greetings:
>>>>>>
>>>>>> I fixed a case in the windows native code where calloc() was being used
>>>>>> without checking it's returned value.
>>>>>>
>>>>>> http://cr.openjdk.java.net/~jzavgren/8012108/webrev.01/
>>>>>>
>>>>>> Thanks!
>>>>>> John Zavgren
>>>
>>> -- 
>>> Dmitry Samersoff
>>> Oracle Java development team, Saint Petersburg, Russia
>>> * Give Rabbit time, and he'll always get the answer
>


-- 
John Zavgren
john.zavgren at oracle.com
603-821-0904
US-Burlington-MA




More information about the net-dev mailing list