RFR: JDK-8319301: Static analysis warnings after JDK-8318016

Thomas Stuefe stuefe at openjdk.org
Tue Nov 14 08:35:02 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.

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

Depends on: https://git.openjdk.org/jdk/pull/16335

Commit messages:
 - JDK-8319301-Static-analysis-warnings-after-JDK-8318016

Changes: https://git.openjdk.org/jdk/pull/16631/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16631&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8319301
  Stats: 91 lines in 2 files changed: 87 ins; 0 del; 4 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