RFR: 8303070: Memory leak in DCmdArgument<char*>::parse_value [v2]

Justin King jcking at openjdk.org
Fri Feb 24 15:49:10 UTC 2023


On Fri, 24 Feb 2023 02:27:42 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> If we have a default value for the char* DCmdArgument we copy it into the `_value` field using `parse_value` to make a copy in C-heap. If we then parse an actual argument value, we replace the default but don't free it. The parse method needs to use realloc.
>> 
>> Thanks to @jcking for spotting the cause.
>> 
>> Testing: tiers 1-3 
>> 
>> Thanks.
>
> David Holmes has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Removed redundant clause

src/hotspot/share/services/diagnosticArgument.cpp line 183:

> 181: template <> void DCmdArgument<char*>::parse_value(const char* str,
> 182:                                                   size_t len, TRAPS) {
> 183:   if (str == nullptr) {

Do we need to call free here? Not sure if str is actually ever null in practice.

-------------

PR: https://git.openjdk.org/jdk/pull/12737


More information about the hotspot-runtime-dev mailing list