> jmm_GetDiagnosticCommandArgumentsInfo and jmm_GetDiagnosticCommandInfo are 
> used to query the hotspot about diagnostic commands. They provide output 
> arrays for the information:
> 
> 
> void jmm_GetDiagnosticCommandArgumentsInfo(JNIEnv *env,
>           jstring command, dcmdArgInfo* infoArray)
> 
> 
> but array size is implicitly assumed to be known to both caller and callee. 
> Caller and callee negotiate those sizes in prior steps, but things can go 
> wrong. E.g. I recently hunted a bug where `DCmd::number_arguments()` was off 
> - did not reflect the real number of its jcmd parameters - which led to a 
> hidden memory overwriter.
> 
> Thankfully, JDK-8264565 rewrote the dcmd framework to deal with this 
> particular issue (The VM I analyzed was older). Still, it would be good if we 
> had additional safety measures here.
> 
> -------------
> 
> Testing:
> - manual tests with artificially induced error in one dcmd for debug, release
> - GHAs (which include tier1 serviceability jcmd tests which use JMX and 
> exercise these APIs)

Thomas Stuefe has updated the pull request incrementally with one additional 
commit since the last revision:

  Remove changes to GetDiagnosticCommandInfo

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/6363/files
  - new: https://git.openjdk.java.net/jdk/pull/6363/files/65dad518..3bdc6c89

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=6363&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=6363&range=00-01

  Stats: 9 lines in 3 files changed: 0 ins; 5 del; 4 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6363.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6363/head:pull/6363

PR: https://git.openjdk.java.net/jdk/pull/6363

Reply via email to