RFR: 8332865: ubsan: os::attempt_reserve_memory_between reports overflow

Matthias Baesken mbaesken at openjdk.org
Tue Jun 4 16:56:21 UTC 2024


When running by ubsan-enabled binaries on Linux x86_64, os::attempt_reserve_memory_between reports overflows.

"runtime error: pointer index expression with base 0x000000001000 overflowed to 0xfffffffffffff000"

This coding triggers the ubsan issue


  char* const hi_att = align_down(MIN2(max, absolute_max) - bytes, alignment_adjusted);
  if (hi_att > max) {
    return nullptr; // overflow
  }


However the function already contains overflow handling, so probably it is sufficient to add an attribute to the function os::attempt_reserve_memory_between to disable ubsan checks for this function.

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

Commit messages:
 - JDK-8332865

Changes: https://git.openjdk.org/jdk/pull/19543/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19543&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8332865
  Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/19543.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19543/head:pull/19543

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


More information about the hotspot-runtime-dev mailing list