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