Integrated: 8320189: vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001 memory corruption when using -Xcheck:jni
Serguei Spitsyn
sspitsyn at openjdk.org
Sat May 31 00:44:58 UTC 2025
On Fri, 23 May 2025 19:37:15 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
> This update is fixing a couple of `nsk/jvmti/ scenarios` tests.
> The tests in a JVMTI `ClassFileLoadHook` callback provide new class file bytes with the result returned by JNI `GetByteArrayElements()`. It violates the JVMTI `ClassFileLoadHook` spec saying:
>
> "The agent must allocate the space for the modified class file data buffer using the memory allocation function Allocate because the VM is responsible for freeing the new class file data buffer using Deallocate."
>
> Please, see the JVMTI ClassFileLoadHook spec:
> https://docs.oracle.com/en/java/javase/24/docs/specs/jvmti.html#ClassFileLoadHook
>
> It is the root cause of a memory corruption detected with the VM option `-Xcheck:jni`.
> The fix is to convert a JNI allocated array returned by `GetByteArrayElements()` to a JMVTI allocated array. New conversion function `jni_array_to_jvmti_allocated()` is added to the`jvmti_common.hpp`.
>
> Testing:
> - ran updated tests individually
> - TBD: submit mach5 tiers 1-6
This pull request has now been integrated.
Changeset: c67fc735
Author: Serguei Spitsyn <sspitsyn at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/c67fc735959ddd41a8d1116908ca7bae9b966016
Stats: 48 lines in 3 files changed: 20 ins; 21 del; 7 mod
8320189: vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001 memory corruption when using -Xcheck:jni
Reviewed-by: lmesnik, amenkov
-------------
PR: https://git.openjdk.org/jdk/pull/25422
More information about the serviceability-dev
mailing list