diff options
author | Anthony Green <green@gcc.gnu.org> | 1999-08-09 00:25:51 +0000 |
---|---|---|
committer | Anthony Green <green@gcc.gnu.org> | 1999-08-09 00:25:51 +0000 |
commit | e3253af52066d10939765b186fb5505502e1a949 (patch) | |
tree | 2e14f76a234c1ea9df27dca0451f7c7904c8fc2a /libjava/defineclass.cc | |
parent | 63ecaef554f610b329935aeb02cc71855f1fdefa (diff) | |
download | gcc-e3253af52066d10939765b186fb5505502e1a949.zip gcc-e3253af52066d10939765b186fb5505502e1a949.tar.gz gcc-e3253af52066d10939765b186fb5505502e1a949.tar.bz2 |
defineclass.cc (_Jv_VerifyClassName): Verify array names correctly.
* defineclass.cc (_Jv_VerifyClassName): Verify array names
correctly.
From-SVN: r28606
Diffstat (limited to 'libjava/defineclass.cc')
-rw-r--r-- | libjava/defineclass.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc index 09f8f47..e062fb2 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) |