mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
6539281: -Xcheck:jni should validate char* argument to ReleaseStringUTFChars
Tag allocated memory with a magic value and verify when releasing. Reviewed-by: phh, stefank
This commit is contained in:
parent
dd62e29b29
commit
1765b0fbf0
4 changed files with 65 additions and 17 deletions
|
@ -2113,11 +2113,10 @@ JNI_END
|
|||
JNI_ENTRY(const char*, jni_GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy))
|
||||
JNIWrapper("GetStringUTFChars");
|
||||
DTRACE_PROBE3(hotspot_jni, GetStringUTFChars__entry, env, string, isCopy);
|
||||
ResourceMark rm;
|
||||
char* str = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(string));
|
||||
int length = (int)strlen(str);
|
||||
char* result = AllocateHeap(length+1, "GetStringUTFChars");
|
||||
strcpy(result, str);
|
||||
oop java_string = JNIHandles::resolve_non_null(string);
|
||||
size_t length = java_lang_String::utf8_length(java_string);
|
||||
char* result = AllocateHeap(length + 1, "GetStringUTFChars");
|
||||
java_lang_String::as_utf8_string(java_string, result, (int) length + 1);
|
||||
if (isCopy != NULL) *isCopy = JNI_TRUE;
|
||||
DTRACE_PROBE1(hotspot_jni, GetStringUTFChars__return, result);
|
||||
return result;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue