mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
8132980: Improve stability of whitebox methods getCodeBlob and freeCodeBlob
Added checks for negative and null size and address values (where applicable) for getCodeBlob, allocateCodeBlob and freeCodeBlob, added regression test Reviewed-by: iignatyev
This commit is contained in:
parent
518c5cacbc
commit
9f9739c156
3 changed files with 100 additions and 5 deletions
|
@ -1041,11 +1041,18 @@ CodeBlob* WhiteBox::allocate_code_blob(int size, int blob_type) {
|
|||
}
|
||||
|
||||
WB_ENTRY(jlong, WB_AllocateCodeBlob(JNIEnv* env, jobject o, jint size, jint blob_type))
|
||||
return (jlong) WhiteBox::allocate_code_blob(size, blob_type);
|
||||
if (size < 0) {
|
||||
THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
err_msg("WB_AllocateCodeBlob: size is negative: " INT32_FORMAT, size));
|
||||
}
|
||||
return (jlong) WhiteBox::allocate_code_blob(size, blob_type);
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(void, WB_FreeCodeBlob(JNIEnv* env, jobject o, jlong addr))
|
||||
BufferBlob::free((BufferBlob*) addr);
|
||||
if (addr == 0) {
|
||||
return;
|
||||
}
|
||||
BufferBlob::free((BufferBlob*) addr);
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(jobjectArray, WB_GetCodeHeapEntries(JNIEnv* env, jobject o, jint blob_type))
|
||||
|
@ -1090,9 +1097,13 @@ WB_ENTRY(jint, WB_GetCompilationActivityMode(JNIEnv* env, jobject o))
|
|||
WB_END
|
||||
|
||||
WB_ENTRY(jobjectArray, WB_GetCodeBlob(JNIEnv* env, jobject o, jlong addr))
|
||||
ThreadToNativeFromVM ttn(thread);
|
||||
CodeBlobStub stub((CodeBlob*) addr);
|
||||
return codeBlob2objectArray(thread, env, &stub);
|
||||
if (addr == 0) {
|
||||
THROW_MSG_NULL(vmSymbols::java_lang_NullPointerException(),
|
||||
"WB_GetCodeBlob: addr is null");
|
||||
}
|
||||
ThreadToNativeFromVM ttn(thread);
|
||||
CodeBlobStub stub((CodeBlob*) addr);
|
||||
return codeBlob2objectArray(thread, env, &stub);
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(jlong, WB_GetThreadStackSize(JNIEnv* env, jobject o))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue