> 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