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

Albert Mingkun Yang ayang at openjdk.org
Tue Jan 14 17:01:52 UTC 2025


On Tue, 14 Jan 2025 16:27:13 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

>> 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
> 
>  - Merge branch 'master' into pscardtable-ubsan
>  - fix exclusive check, rename to verify
>  - typo: intptr_t => uintptr_t
>  - avoid UB

Marked as reviewed by ayang (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/23032#pullrequestreview-2550445506


More information about the hotspot-gc-dev mailing list