Fix for PR libgcj/2024, plus other class name cleanups:
* include/jvm.h (_Jv_VerifyFieldSignature, _Jv_VerifyMethodSignature, _Jv_VerifyClassName, _Jv_VerifyIdentifier, _Jv_ClassNameSamePackage): Moved from ... * include/java-interp.h: ... here. * defineclass.cc (UTF8_PEEK): No longer conditional on interpreter. (_Jv_VerifyOne): Likewise. (_Jv_VerifyFieldSignature): Likewise. (_Jv_VerifyMethodSignature): Likewise. (is_identifier_start): Likewise. (is_identifier_part): Likewise. (_Jv_VerifyIdentifier): Likewise. (_Jv_VerifyClassName): Likewise. (_Jv_VerifyClassName): Likewise. (_Jv_ClassNameSamePackage): Likewise. (_Jv_VerifyClassName): Fail if class name is too long. * java/lang/natClassLoader.cc (_Jv_NewArrayClass): Disallow array of void. * java/lang/natClass.cc (forName): Check syntax of class name. Include IllegalArgumentException.h. From-SVN: r47334
This commit is contained in:
parent
4bdd26e608
commit
bea31ffbcb
6 changed files with 118 additions and 86 deletions
|
@ -341,6 +341,14 @@ void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *);
|
|||
struct _Jv_JavaVM;
|
||||
_Jv_JavaVM *_Jv_GetJavaVM ();
|
||||
|
||||
// Some verification functions from defineclass.cc.
|
||||
bool _Jv_VerifyFieldSignature (_Jv_Utf8Const*sig);
|
||||
bool _Jv_VerifyMethodSignature (_Jv_Utf8Const*sig);
|
||||
bool _Jv_VerifyClassName (unsigned char* ptr, _Jv_ushort length);
|
||||
bool _Jv_VerifyClassName (_Jv_Utf8Const *name);
|
||||
bool _Jv_VerifyIdentifier (_Jv_Utf8Const *);
|
||||
bool _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2);
|
||||
|
||||
#ifdef ENABLE_JVMPI
|
||||
#include "jvmpi.h"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue