RFR: 8346916: [REDO] align_up has potential overflow [v3]

Casper Norrbin cnorrbin at openjdk.org
Fri Feb 28 14:13:28 UTC 2025


> Hi everyone,
> 
> The `align_up` function can potentially overflow, resulting in undefined behavior. Most use cases rely on the assumption that aligned_result >= original. To address this, I've added an assertion to verify this condition.
> 
> The original PR (#20808) missed cases where overflow checks already existed, so I've now went through usages of `align_up` and found the places with explicit checks. Most notably, #23168 added `align_up_or_null` to metaspace, but this function is also useful elsewhere. Given this, I relocated it to `align.hpp`, alongside the rest of the alignment functions.
> 
> Additionally, I've created `align_up_or_min`, which behaves similarly to the original align_up but handles overflows predictably across all integer types. This new function is used in the locations where overflow checks already exist, providing a safer alternative.

Casper Norrbin has updated the pull request incrementally with one additional commit since the last revision:

  changed max size of MinHeapDeltaBytes

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23711/files
  - new: https://git.openjdk.org/jdk/pull/23711/files/aa8a8054..86d91252

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

  Stats: 2 lines in 2 files changed: 0 ins; 1 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/23711.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23711/head:pull/23711

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


More information about the hotspot-dev mailing list