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