On Tue, 24 May 2022 15:28:27 GMT, Maurizio Cimadamore <mcimadam...@openjdk.org> wrote:
>> Constructing indexed var handles using the `MemoryLayout` API produces >> `VarHandle` which do not check the input indices for out-of-bounds >> conditions. >> While this can never result in a VM crash (after all the memory segment will >> protect against "true" OOB access), it is still possible for an access >> expression to refer to parts of a segment that are logically unrelated. >> >> This patch adds a "logical" bound check to all indexed var handles generated >> using the layout API. >> Benchmarks are not affected by the check. Users are still able to create >> custom "unchecked" var handles, using the combinator API in `MethodHandles`. > > Maurizio Cimadamore has updated the pull request incrementally with one > additional commit since the last revision: > > Tweak javadoc for ValueLayout::arrayElementVarHandle src/java.base/share/classes/jdk/internal/foreign/LayoutPath.java line 256: > 254: private long[] addBound(long maxIndex) { > 255: long[] newBounds = new long[bounds.length + 1]; > 256: System.arraycopy(bounds, 0, newBounds, 0, bounds.length); Suggestion: long[] newBounds = Arrays.copyOf(bounds, bounds.length + 1); ------------- PR: https://git.openjdk.java.net/jdk/pull/8868