diff src/share/vm/classfile/javaClasses.cpp @ 1989:017cd8bce8a8

6539281: -Xcheck:jni should validate char* argument to ReleaseStringUTFChars Summary: Tag allocated memory with a magic value and verify when releasing. Reviewed-by: phh, stefank
author sla
date Tue, 07 Dec 2010 03:15:45 -0800
parents 828eafbd85cc
children 3582bf76420e
line wrap: on
line diff
--- a/src/share/vm/classfile/javaClasses.cpp	Mon Dec 06 20:21:15 2010 -0500
+++ b/src/share/vm/classfile/javaClasses.cpp	Tue Dec 07 03:15:45 2010 -0800
@@ -313,6 +313,14 @@
   return UNICODE::as_utf8(position, length);
 }
 
+char* java_lang_String::as_utf8_string(oop java_string, char* buf, int buflen) {
+  typeArrayOop value  = java_lang_String::value(java_string);
+  int          offset = java_lang_String::offset(java_string);
+  int          length = java_lang_String::length(java_string);
+  jchar* position = (length == 0) ? NULL : value->char_at_addr(offset);
+  return UNICODE::as_utf8(position, length, buf, buflen);
+}
+
 char* java_lang_String::as_utf8_string(oop java_string, int start, int len) {
   typeArrayOop value  = java_lang_String::value(java_string);
   int          offset = java_lang_String::offset(java_string);