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



--
John Zavgren
john.zavg...@oracle.com
603-821-0904
US-Burlington-MA

Reply via email to