RFR: 8313796: AsyncGetCallTrace crash on unreadable interpreter method pointer

Andrew Haley aph at openjdk.org
Mon Aug 7 20:45:33 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 514:

> 512:     return false;
> 513:   }
> 514:   Method* m = *m_addr;

Suggestion:

  Method* m_addr = interpreter_frame_method_addr();
  if (m_addr == nullptr) {
    return false;
  }
  Method* m = SafeFetchN(m_addr, nullptr);
  if (m == nullptr) {
    return false;
  }


Reason: more robust against changes in memory map, faster.

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

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


More information about the hotspot-dev mailing list