RFR: 8313796: AsyncGetCallTrace crash on unreadable interpreter method pointer

Andrei Pangin apangin at openjdk.org
Mon Aug 7 20:58:29 UTC 2023


On Mon, 7 Aug 2023 13:37:33 GMT, Richard Startin <duke at openjdk.org> wrote:

> We have observed invalid pointers to the interpreted method at Datadog. The fix is based on a discussion with and a code snippet from @parttimenerd.

src/hotspot/cpu/aarch64/frame_aarch64.cpp line 511:

> 509:   // first the method
> 510:   Method** m_addr = interpreter_frame_method_addr();
> 511:   if (m_addr == nullptr || !os::is_readable_pointer(m_addr)) {

Just wondering, why checking `is_readable_pointer` + dereference instead of `SafeFetch` which does both in one shot? Especially since `os::is_readable_pointer` is implemented with `SafeFetch` anyway.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15178#discussion_r1286375719


More information about the hotspot-dev mailing list