summaryrefslogtreecommitdiff
path: root/libjava/defineclass.cc
diff options
context:
space:
mode:
authorgreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-09 00:25:51 +0000
committergreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-09 00:25:51 +0000
commitf03bc1a26ddcb7e55946179f44fe9fefd3df87b8 (patch)
tree2e14f76a234c1ea9df27dca0451f7c7904c8fc2a /libjava/defineclass.cc
parent0d1596eae19004275654cf007e9b2f4bdd01a242 (diff)
downloadgcc-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
Diffstat (limited to 'libjava/defineclass.cc')
-rw-r--r--libjava/defineclass.cc8
1 files changed, 8 insertions, 0 deletions
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)