RFR: 8340307: Add explanation around MemorySegment:reinterpret regarding arenas [v4]
Maurizio Cimadamore
mcimadamore at openjdk.org
Thu Oct 31 17:27:33 UTC 2024
On Thu, 31 Oct 2024 14:32:46 GMT, Per Minborg <pminborg at openjdk.org> wrote:
>> This PR proposes to add a small text segment on the `MemorySegment::reinterpret` overloads that takes an Arena stating the responsibility of actually freeing reinterpreted segments lies with the *original* arena.
>
> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
>
> Improve docs
src/java.base/share/classes/java/lang/foreign/MemorySegment.java line 766:
> 764: * method returns a segment that can be used as any other segment allocated using the
> 765: * provided arena. However, The returned segment is backed by the same memory region
> 766: * as that of the original segment. As such, the region of memory backing the
s/original/this
src/java.base/share/classes/java/lang/foreign/MemorySegment.java line 768:
> 766: * as that of the original segment. As such, the region of memory backing the
> 767: * returned segment is deallocated only when the original segment's arena is closed.
> 768: * Care must be taken as this might lead to unexpected behavior:
maybe s/unexpected/unsafe
src/java.base/share/classes/java/lang/foreign/MemorySegment.java line 770:
> 768: * Care must be taken as this might lead to unexpected behavior:
> 769: * <ol>
> 770: * <li>The reinterpreted segment can be accessed <em>after</em> its region
s/reinterpreted/returned
src/java.base/share/classes/java/lang/foreign/MemorySegment.java line 771:
> 769: * <ol>
> 770: * <li>The reinterpreted segment can be accessed <em>after</em> its region
> 771: * of memory has been deallocated via the original arena (use after free).</li>
s/the original arena/this segment's arena
src/java.base/share/classes/java/lang/foreign/MemorySegment.java line 771:
> 769: * <ol>
> 770: * <li>The reinterpreted segment can be accessed <em>after</em> its region
> 771: * of memory has been deallocated via the original arena (use after free).</li>
Suggestion:
* of memory has been deallocated via the original arena, resulting in *use after free*.</li>
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21761#discussion_r1824872032
PR Review Comment: https://git.openjdk.org/jdk/pull/21761#discussion_r1824875339
PR Review Comment: https://git.openjdk.org/jdk/pull/21761#discussion_r1824876869
PR Review Comment: https://git.openjdk.org/jdk/pull/21761#discussion_r1824878427
PR Review Comment: https://git.openjdk.org/jdk/pull/21761#discussion_r1824880684
More information about the core-libs-dev
mailing list