diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-23 19:17:22 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-23 19:17:22 +0000 |
commit | 369305ac6a54d2a29402c0ec9b16ff30b44eee80 (patch) | |
tree | 52e8fc029d0fc50bc88eadfb097bbbc2ea437d19 /libjava | |
parent | e87dd429b4f2649989226014cd6a282f41417e26 (diff) | |
download | ppe42-gcc-369305ac6a54d2a29402c0ec9b16ff30b44eee80.tar.gz ppe42-gcc-369305ac6a54d2a29402c0ec9b16ff30b44eee80.zip |
2000-03-23 Jeff Sturm <jsturm@one-point.com>
* prims.cc (_Jv_FindClassFromSignature): Check return of
recursive call. Do not abort on invalid signature; return NULL
instead.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40787 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 6 | ||||
-rw-r--r-- | libjava/prims.cc | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index a58e14b5160..5c24dd98221 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2000-03-23 Jeff Sturm <jsturm@one-point.com> + + * prims.cc (_Jv_FindClassFromSignature): Check return of + recursive call. Do not abort on invalid signature; return NULL + instead. + 2001-03-22 Tom Tromey <tromey@redhat.com> * jni.cc (_Jv_JNI_GetAnyFieldID): Handle unresolved fields. diff --git a/libjava/prims.cc b/libjava/prims.cc index f68b2f049ba..6cd9b0572f0 100644 --- a/libjava/prims.cc +++ b/libjava/prims.cc @@ -559,10 +559,14 @@ _Jv_FindClassFromSignature (char *sig, java::lang::ClassLoader *loader) } case '[': - return _Jv_GetArrayClass (_Jv_FindClassFromSignature (&sig[1], loader), - loader); + { + jclass klass = _Jv_FindClassFromSignature (&sig[1], loader); + if (! klass) + return NULL; + return _Jv_GetArrayClass (klass, loader); + } } - JvFail ("couldn't understand class signature"); + return NULL; // Placate compiler. } |