RFR: JDK-8319301: Static analysis warnings after JDK-8318016 [v2]

Thomas Stuefe stuefe at openjdk.org
Tue Nov 14 10:13:13 UTC 2023


> Sonar reports two new troubles in compileOracle.cpp:
> 
> 1) "left operand of '-' is a garbage value", when seeing that `line` might not be initialized properly:
> 
> 
>   char* end;
>   if (!parse_integer<size_t>(line, &end, &s)) {
>     jio_snprintf(errorbuf, buf_size, "MemLimit: invalid value");
>   }
>   bytes_read = (int)(end - line); // <---- here
> 
> 
> 2) "3rd function call argument is an uninitialized value", because there is an early `return true` from parseMemLimit that does not initialize `value`:
> 
> 
>    // Special handling for memlimit
>     bool success = (option == CompileCommand::MemLimit) && parseMemLimit(line, value, bytes_read, errorbuf, buf_size);
>     if (!success) {
>       // Is it a raw number?
>       success = sscanf(line, "" INTX_FORMAT "%n", &value, &bytes_read) == 1;
>     }
>     if (success) {
>       total_bytes_read += bytes_read;
>       line += bytes_read;
>       register_command(matcher, option, value); // <---- here
> 
> 
> Patch fixes both instances and adds new regression test.

Thomas Stuefe has updated the pull request incrementally with one additional commit since the last revision:

  Fix bug number in test

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/16631/files
  - new: https://git.openjdk.org/jdk/pull/16631/files/70ca8327..024d6813

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=16631&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=16631&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/16631.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16631/head:pull/16631

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


More information about the hotspot-compiler-dev mailing list