John,

OK. Thank you for the explanation.

It looks like i misread the code.

-Dmitry


On 2013-04-24 19:35, John Zavgren wrote:
> 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.samers...@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.hega...@oracle.com
>>>>> To: net-dev@openjdk.java.net, john.zavg...@oracle.com
>>>>> Cc: dmitry.samers...@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
>>
> 
> 


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* Give Rabbit time, and he'll always get the answer

Reply via email to