RFR 8007606 : Handle realloc() failure in unix/native/libnet/net_util_md.c correctly

Ivan Gerasimov ivan.gerasimov at oracle.com
Thu Jan 17 02:16:34 UTC 2019


Thank you Christoph and Mattias!

I've filed
https://bugs.openjdk.java.net/browse/JDK-8217291 and
https://bugs.openjdk.java.net/browse/JDK-8217292

to handle the realloc() issues in other areas.

With kind regards,
Ivan

On 1/16/19 2:22 AM, Baesken, Matthias wrote:
> Hi  Ivan ,looks good to me too  (not a Reviewer  however).
>
> Do you think we should address the other reallocs with unhandeled  return  code ?
>
> Best regards, Matthias
>
>> -----Original Message-----
>> From: Langer, Christoph
>> Sent: Dienstag, 15. Januar 2019 20:58
>> To: Ivan Gerasimov <ivan.gerasimov at oracle.com>; Baesken, Matthias
>> <matthias.baesken at sap.com>; net-dev at openjdk.java.net
>> Subject: RE: RFR 8007606 : Handle realloc() failure in
>> unix/native/libnet/net_util_md.c correctly
>>
>> Hi Ivan,
>>
>> yes, sure, push it ��
>>
>> Best regards
>> Christoph
>>
>>> -----Original Message-----
>>> From: Ivan Gerasimov <ivan.gerasimov at oracle.com>
>>> Sent: Dienstag, 15. Januar 2019 20:53
>>> To: Baesken, Matthias <matthias.baesken at sap.com>; net-
>>> dev at openjdk.java.net; Langer, Christoph <christoph.langer at sap.com>
>>> Subject: Re: RFR 8007606 : Handle realloc() failure in
>>> unix/native/libnet/net_util_md.c correctly
>>>
>>> Hello!
>>>
>>> Do you think it is good to go now?
>>>
>>> With kind regards,
>>>
>>> Ivan
>>>
>>>
>>> On 1/11/19 11:30 AM, Ivan Gerasimov wrote:
>>>> Good catch, thank you!
>>>>
>>>> Indeed, if we don't reset localifsSize then we could end up accessing
>>>> already freed memory, which is worse than just a memory leak.
>>>>
>>>> Here's the updated webrev:
>>>>
>>>> http://cr.openjdk.java.net/~igerasim/8007606/01/webrev/
>>>>
>>>> With kind regards,
>>>> Ivan
>>>>
>>>> On 1/11/19 4:43 AM, Baesken, Matthias wrote:
>>>>> Hi Ivan,
>>>>>
>>>>> Shouldn't you reset    localifsSize to 0   in case of  the early
>>>>> return ?  The comment says  localifsSize is the size of the array so
>>>>> the size of the array is 0 again after freeing.
>>>>>
>>>>>
>>>>> 637 static struct localinterface *localifs = 0;
>>>>>    638 static int localifsSize = 0;    /* size of array */
>>>>>    639 static int nifs = 0;            /* number of entries used in
>>>>> array */
>>>>>
>>>>>      ...
>>>>>
>>>>> 679             if (localifsTemp == 0) {
>>>>>    680                 free(localifs);
>>>>>    681                 localifs = 0;
>>>>>    682                 nifs = 0;
>>>>>    683                 fclose(f);
>>>>>    684                 return;
>>>>>    685             }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Best regards, Matthias
>>>>>
>>>>>
>>>>>
>>>>>> Date: Thu, 10 Jan 2019 20:29:08 -0800
>>>>>> From: Ivan Gerasimov <ivan.gerasimov at oracle.com>
>>>>>> To: "net-dev at openjdk.java.net" <net-dev at openjdk.java.net>
>>>>>> Subject: RFR 8007606 : Handle realloc() failure in
>>>>>>      unix/native/libnet/net_util_md.c correctly
>>>>>> Message-ID: <3dc3c26b-fea7-2538-2c7a-bfa623f2fc86 at oracle.com>
>>>>>> Content-Type: text/plain; charset=utf-8; format=flowed
>>>>>>
>>>>>> Hello!
>>>>>>
>>>>>> This seems to be the last use of realloc() without proper handling of a
>>>>>> failure.
>>>>>>
>>>>>> Would you please help review a trivial fix?
>>>>>>
>>>>>> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8007606
>>>>>> WEBREV: http://cr.openjdk.java.net/~igerasim/8007606/00/webrev/
>>>>>>
>>>>>> Thanks in advance!
>>>>>>
>>>>>> --
>>>>>> With kind regards,
>>>>>> Ivan Gerasimov
>>>>>>
>>>>>>
>>> --
>>> With kind regards,
>>> Ivan Gerasimov

-- 
With kind regards,
Ivan Gerasimov



More information about the net-dev mailing list