You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2007/03/19 17:33:15 UTC
svn commit: r520001 -
/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp
Author: gshimansky
Date: Mon Mar 19 09:33:14 2007
New Revision: 520001
URL: http://svn.apache.org/viewvc?view=rev&rev=520001
Log:
Applied HARMONY-3316 [drlvm]VM throws VerifyError instead of ClassFormatError when class contains incorrect method name
Test attached to JIRA passes now.
Modified:
harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp?view=diff&rev=520001&r1=520000&r2=520001
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp Mon Mar 19 09:33:14 2007
@@ -2658,6 +2658,11 @@
clss->get_name()->bytes << ": illegal method name for CONSTANT_Methodref entry: " << name->bytes);
return false;
}
+ if(name->bytes[0] == '<' && name != env->Init_String) {
+ REPORT_FAILED_CLASS_CLASS(clss->get_class_loader(), clss, "java/lang/ClassFormatError",
+ clss->get_name()->bytes << ": illegal method name "<< name->bytes << " at constant pool index " << name_index);
+ return false;
+ }
} else { //always check method name if classloader is not system
if((name != env->Init_String)
&& !check_member_name(name->bytes,name->len, clss->get_version() < JAVA5_CLASS_FILE_VERSION, true))