JDK-8266371 : Memory segment bound check fails because of small segment optimizations
  • Type: Bug
  • Component: tools
  • Sub-Component: jextract
  • Affected Version: 16,repo-panama
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2021-04-30
  • Updated: 2021-04-30
  • Resolved: 2021-04-30
Description
This test fails with a JVM crash:

import jdk.incubator.foreign.MemoryAccess;
import jdk.incubator.foreign.MemorySegment;
import jdk.incubator.foreign.ResourceScope;

class SIGSEGV {
    public static void main(String[] args) {
        MemorySegment memorySegment = MemorySegment.allocateNative(2147479552, ResourceScope.globalScope());
        MemoryAccess.getLongAtOffset(memorySegment, 8223372036854705800L);
    }
}

However, when executed with "-Djdk.incubator.foreign.SmallSegments=false", same tests fails with IndexOutOfBoundsException, as expected.