RFR: 8346971: [ubsan] psCardTable.cpp:131:24: runtime error: large index is out of bounds [v2]

Kim Barrett kbarrett at openjdk.org
Mon Jan 13 10:42:33 UTC 2025


> Please review this change to PSStripeShadowCardTable to avoid several examples
> of UB in it's internal calculations.  We avoid the UB by switching to the
> integer domain (using uintptr_t) for all of the internal calculations, with
> casts between pointers and uintptr_t as needed at the boundaries.
> 
> This applies not just to the various pointer adjustments, but also to pointer
> comparisons. In particular, the prior range check assertions using pointer
> comparisons could have been partially or even completely "optimized" away
> based on the no-UB assumption.
> 
> Testing: mach5 tier1-5
> local (linux-x64) tier1 with -XX:+UseParallelGC

Kim Barrett has updated the pull request incrementally with one additional commit since the last revision:

  typo: intptr_t => uintptr_t

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23032/files
  - new: https://git.openjdk.org/jdk/pull/23032/files/374add7f..58c704f7

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

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

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


More information about the hotspot-gc-dev mailing list