diff options
author | green <green@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-08-09 00:25:51 +0000 |
---|---|---|
committer | green <green@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-08-09 00:25:51 +0000 |
commit | f03bc1a26ddcb7e55946179f44fe9fefd3df87b8 (patch) | |
tree | 2e14f76a234c1ea9df27dca0451f7c7904c8fc2a | |
parent | 0d1596eae19004275654cf007e9b2f4bdd01a242 (diff) | |
download | gcc-f03bc1a26ddcb7e55946179f44fe9fefd3df87b8.tar.gz |
* defineclass.cc (_Jv_VerifyClassName): Verify array names
correctly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28606 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libjava/ChangeLog | 9 | ||||
-rw-r--r-- | libjava/defineclass.cc | 8 |
2 files changed, 15 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 24051fcdc48..28512d36439 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,4 +1,9 @@ -1999-08-09 Anthony Green <green@cygnus.com> +1999-08-08 Anthony Green <green@cygnus.com> + + * defineclass.cc (_Jv_VerifyClassName): Verify array names + correctly. + +1999-08-08 Anthony Green <green@cygnus.com> * gij.cc: New file. @@ -30,7 +35,7 @@ * NEWS: More news. * THANKS: More thanks. -1999-08-09 Kresten Krab Thorup <krab@gnu.org> +1999-08-08 Kresten Krab Thorup <krab@gnu.org> * resolve.cc (get_ffi_type_from_signature): Generate uint16 for jchar type. diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc index 09f8f47fc84..e062fb2e756 100644 --- a/libjava/defineclass.cc +++ b/libjava/defineclass.cc @@ -1414,6 +1414,14 @@ _Jv_VerifyClassName (unsigned char* ptr, _Jv_ushort length) unsigned char *limit = ptr+length; int ch; + if ('[' == UTF8_PEEK (ptr, limit)) + { + if (! _Jv_VerifyOne (++ptr, limit, false)) + throw_class_format_error ("erroneous class name"); + else + return; + } + next_level: do { if ((ch = UTF8_GET (ptr, limit))==-1) |