public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: jmr@ugcs.caltech.edu To: gcc-gnats@gcc.gnu.org Subject: libgcj/7709: NullPointerException in _Jv_ResolvePoolEntry Date: Sat, 24 Aug 2002 05:26:00 -0000 [thread overview] Message-ID: <200208240719.g7O7JP217953@churchill.internal.avlsi.com> (raw) >Number: 7709 >Category: libgcj >Synopsis: NullPointerException in _Jv_ResolvePoolEntry >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Aug 24 00:26:02 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Jesse Rosenstock >Release: 3.3 20020820 (experimental) >Organization: >Environment: System: Linux churchill 2.4.3-12 #1 Fri Jun 8 15:05:56 EDT 2001 i686 unknown Architecture: i686 host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: i686-pc-linux-gnu configured with: ../gcc/configure --prefix=/home/user/jmr/app/gcc --enable-langs=c++,java --enable-shared --enable-threads=posix --with-as=/home/user/jmr/app/binutils/bin/as --with-ld=/home/user/jmr/app/binutils/bin/ld >Description: In _Jv_ResolvePoolEntry, if no method is found in the JV_CONSTANT_Methodref/JV_CONSTANT_InterfaceMethodref case, _Jv_DetermineVTableIndex may be called with found_class == NULL, causing a NullPointerException when _Jv_DetermineVTableIndex calls getSuperclass(). >How-To-Repeat: I haven't reduced it to a small test case yet, but it is clear that some error other than NullPointerException should be reported. >Fix: I'm not sure about this, but it does get rid of the NullPointerException, and since the_method is not modified by the code I moved, perhaps the author intended the the_method == 0 check to go first. Index: resolve.cc =================================================================== RCS file: /cvsroot/gcc/gcc/libjava/resolve.cc,v retrieving revision 1.29 diff -c -r1.29 resolve.cc *** resolve.cc 20 Jun 2002 15:10:49 -0000 1.29 --- resolve.cc 24 Aug 2002 06:07:08 -0000 *************** *** 300,315 **** // with either loader should produce the same result, // i.e., exactly the same jclass object. JVMS 5.4.3.3 - if (pool->tags[index] == JV_CONSTANT_InterfaceMethodref) - vtable_index = -1; - else - vtable_index = _Jv_DetermineVTableIndex - (found_class, method_name, method_signature); - - if (vtable_index == METHOD_NOT_THERE) - throw_incompatible_class_change_error - (JvNewStringLatin1 ("method not found")); - if (the_method == 0) { jstring msg = JvNewStringLatin1 ("method "); --- 300,305 ---- *************** *** 320,325 **** --- 310,325 ---- throw new java::lang::NoSuchMethodError (msg); } + if (pool->tags[index] == JV_CONSTANT_InterfaceMethodref) + vtable_index = -1; + else + vtable_index = _Jv_DetermineVTableIndex + (found_class, method_name, method_signature); + + if (vtable_index == METHOD_NOT_THERE) + throw_incompatible_class_change_error + (JvNewStringLatin1 ("method not found")); + pool->data[index].rmethod = _Jv_BuildResolvedMethod(the_method, found_class, >Release-Note: >Audit-Trail: >Unformatted:
next reply other threads:[~2002-08-24 7:26 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2002-08-24 5:26 jmr [this message] 2002-09-25 14:00 tromey
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=200208240719.g7O7JP217953@churchill.internal.avlsi.com \ --to=jmr@ugcs.caltech.edu \ --cc=gcc-gnats@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).