RFR (XS): 8132892: Memory must be freed after calling Arguments::set_sysclasspath function

Dmitry Dmitriev dmitry.dmitriev at oracle.com
Sat Aug 8 10:40:16 UTC 2015


Hello Dan,

Thank you for review and comments! I prefer to leave patch as-is, i.e. 
not to add the "modules_dir = NULL" in this trivial case.

Dmitry

On 07.08.2015 19:27, Daniel D. Daugherty wrote:
>
> On 8/4/15 3:14 AM, Dmitry Dmitriev wrote:
>> Hello,
>>
>> Please review this small fix which fix small memory leak. Also, I 
>> need a sponsor for this fix, who can push it.
>>
>> Arguments::set_sysclasspath function call set_value method of 
>> SystemProperty class which copy passed value. In several code paths 
>> memory is allocated for string and then this string is passed to 
>> Arguments::set_sysclasspath. Therefore allocated string should be 
>> freed after calling Arguments::set_sysclasspath function.
>>
>> Webrev: http://cr.openjdk.java.net/~ddmitriev/8132892/webrev.00/ 
>> <http://cr.openjdk.java.net/%7Eddmitriev/8132892/webrev.00/>
>
> src/share/vm/runtime/arguments.cpp
> src/share/vm/runtime/os.cpp
>     L1162: char* os::format_boot_path(const char* format_string, ...
>         Not your bug, but:
>
>         format_boot_path() is only called from os.cpp so I have
>         to wonder why it is named in the 'os' class instead of
>         being private to os.cpp. Perhaps this is worth a cleanup
>         RFE...
>
>     L1286:   FREE_C_HEAP_ARRAY(char, modules_dir);
>         Please set modules_dir = NULL after the free to prevent
>         accidental post-free use; the other free calls are fine
>         because they are closely followed by a return.
>
> Thumbs up. Adding the "modules_dir = NULL" is your choice
> and I don't need a re-review if you choose to do it.
>
> Dan
>
>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8132892
>> Tested: JPRT(hotspot test set), hotspot all, vm.quick
>>
>> Thanks,
>> Dmitry
>>
>>
>



More information about the hotspot-runtime-dev mailing list