RFR: 8355960: JvmtiAgentList::Iterator dtor double free with -fno-elide-constructors [v5]

Alex Menkov amenkov at openjdk.org
Thu Jul 3 19:13:24 UTC 2025


> Currently jvmtiAgentList keeps agents in reversed order (new agents are added to the head of the list).
> To restore original order JvmtiAgentList::Iterator uses GrowableArray allocated in heap.
> Iterators for different agent types are returned by value, and the iterator class nas no custom copy ctor, so if the constructor not elides, GrowableArray is deallocated twice.
> 
> The fix updates jvmtiAgentList to keep agents in the original order, agents are added to the tail.
> Iterator now needs only single pointer to next agent.
> Additionally removed `JvmtiAgentList::Iterator::next() const` method (it looks very strange as `next()` is expected to change state of the iterator).
> 
> Testing: tier1..4,hs-tier5-svc

Alex Menkov has updated the pull request incrementally with one additional commit since the last revision:

  David's feedback

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/26083/files
  - new: https://git.openjdk.org/jdk/pull/26083/files/bf91aef2..b1b2dc3f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26083&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26083&range=03-04

  Stats: 7 lines in 3 files changed: 0 ins; 5 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/26083.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26083/head:pull/26083

PR: https://git.openjdk.org/jdk/pull/26083


More information about the serviceability-dev mailing list