Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 97326 invoked from network); 22 May 2007 15:58:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 May 2007 15:58:26 -0000 Received: (qmail 63485 invoked by uid 500); 22 May 2007 15:58:32 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 63467 invoked by uid 500); 22 May 2007 15:58:32 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 63458 invoked by uid 99); 22 May 2007 15:58:32 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 May 2007 08:58:32 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 May 2007 08:58:25 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id BD3121A981A; Tue, 22 May 2007 08:58:05 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r540620 - /harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp Date: Tue, 22 May 2007 15:58:05 -0000 To: commits@harmony.apache.org From: gshimansky@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070522155805.BD3121A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: gshimansky Date: Tue May 22 08:58:04 2007 New Revision: 540620 URL: http://svn.apache.org/viewvc?view=rev&rev=540620 Log: Applied HARMONY-3832 [drlvm][classloader] VM does not throw ClassFormatError when class_info contains wrong name_index Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp?view=diff&rev=540620&r1=540619&r2=540620 ============================================================================== --- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp (original) +++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp Tue May 22 08:58:04 2007 @@ -3094,7 +3094,15 @@ return false; if(!valid_cpi(this, m_const_pool.get_class_name_index(super_class), CONSTANT_Utf8, "for super class name")) return false; - m_super_class.name = m_const_pool.get_utf8_string(m_const_pool.get_class_name_index(super_class)); + + String* super_name = m_const_pool.get_utf8_string(m_const_pool.get_class_name_index(super_class)); + if(!check_class_name(super_name->bytes, super_name->len, m_version < JAVA5_CLASS_FILE_VERSION)) { + REPORT_FAILED_CLASS_FORMAT(this, " Illegal super class name " + << super_name->bytes); + return false; + } + m_super_class.name = super_name; + if(is_interface() && m_super_class.name != env->JavaLangObject_String){ REPORT_FAILED_CLASS_CLASS(m_class_loader, this, "java/lang/ClassFormatError", m_name->bytes << ": the super class of interface is "