RFR: 8132725: Memory leak in Arguments::add_property function
Dmitry Dmitriev
dmitry.dmitriev at oracle.com
Thu Aug 13 07:55:52 UTC 2015
Hello,
Please review this fix which remove memory leak in
Arguments::add_property function. Also, I need a sponsor for this fix,
who can push it.
Arguments::add_property function allocate memory for key and value. Then
key and values are passed to the PropertyList_unique_add function which
use SystemProperty class to add or update property value. SystemProperty
class maintains it's own copy of key and value and thus copy passed key
and value. Therefore key and value must be freed in add_property
function(with exception for value in case of "java.vendor.url.bug" and
"sun.java.command" properties).
In this fix I allocate memory only for key when passed property contains
value. If passed property not contains value, then I not allocate memory
for key and use passed property string. Value also extracted from passed
property string instead of allocating. To accomplish that I changed
declaration of "value" in several functions from "char *" to "const
char *" since value is not modified in these functions(PropertyList_*
functions, SystemProperty class methods).
Processing of "java.vendor.url.bug" and "sun.java.command" properties
also corrected. Now when these properties redefined, then code checks if
memory was allocated for special variables of these properties(checking
that not contains default value) and free it.
Webrev: http://cr.openjdk.java.net/~ddmitriev/8132725/webrev.00/
<http://cr.openjdk.java.net/%7Eddmitriev/8132725/webrev.00/>
JBS: https://bugs.openjdk.java.net/browse/JDK-8132725
Tested: JPRT(hotspot test set), hotspot all, vm.quick
Thanks,
Dmitry
More information about the hotspot-runtime-dev
mailing list