RFR: JDK-8280004: DCmdArgument<jlong>::parse_value() should handle NULL input

David Holmes dholmes at openjdk.java.net
Tue Jan 18 02:33:21 UTC 2022


On Fri, 14 Jan 2022 10:40:58 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

> Hi,
> 
> may I have eyes please on this simple fix (Sonarcloud-inspired) which sanitizes the error output of DCmdArgument<jlong>::parse_value():
> - since the input can be NULL, we should handle NULL
> - we also limit parroting of invalid input to 64 chars max
> - we also do not need a temporary RA buffer to assemble the output
> 
> Example output with patch, first a short, then a long invalid numeric parameter:
> 
> 
> thomas at starfish:~$ jcmd Simple GC.class_histogram -parallel=hallo
> 399746:
> java.lang.IllegalArgumentException: Integer parsing error in command argument '-parallel'. Could not parse: "hallo".
> thomas at starfish:~$ jcmd Simple GC.class_histogram -parallel=hallo012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
> 399746:
> java.lang.IllegalArgumentException: Integer parsing error in command argument '-parallel'. Could not parse: "hallo01234567890123456789012345678901234567890123456789012345678...".
> 
> 
> Thanks, Thomas

Hi Thomas,

Are you sure about the removal of the copying? I can't quite convince myself that the original string from the command line will still be allocated by the time the exception gets propagated and accessed.

Thanks,
David

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

PR: https://git.openjdk.java.net/jdk/pull/7079


More information about the hotspot-runtime-dev mailing list