United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6930553 classfile format checker allows invalid method descriptor in CONSTANT_NameAndType_info in some cases
JDK-6930553 : classfile format checker allows invalid method descriptor in CONSTANT_NameAndType_info in some cases

Details
Type:
Bug
Submit Date:
2010-02-27
Status:
Closed
Updated Date:
2013-04-10
Project Name:
JDK
Resolved Date:
2010-06-26
Component:
hotspot
OS:
generic
Sub-Component:
runtime
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:
hs19 (b03)

Related Reports
Backport:
Backport:
Backport:
Backport:
Duplicate:
Duplicate:
Duplicate:
Relates:

Sub Tasks

Description
JVMS section 4.4.6 states as follows:
  ---Excerpt-from-spec---
  CONSTANT_NameAndType_info {
    u1 tag;
    u2 name_index;
    u2 descriptor_index;
  }
  ...

  The items of the CONSTANT_NameAndType_info structure are as follows:
  ...
  descriptor_index

  The value of the descriptor_index item must be a valid index into the
  constant_pool table. The constant_pool entry at that index must be a
  CONSTANT_Utf8_info (4.4.7) structure representing a *valid* field descriptor
  (4.3.2) or method descriptor (4.3.3).
  ---End-of-excerpt---

However, JVM class format checker does not reject classes with invalid
(according to Section 4.3.3) method descriptors at the descriptor_index
in the CONSTANT_NameAndType_info structure (like "(#)V", "(.)V", "(;)V",
"()V#" or similar) if there are *NO any explicit or implicit references*
to this NameAndType from a class methods bytecodes.

                                    

Comments
EVALUATION

Check NameAndType_info entries more aggressively for classfiles with version >= 51
                                     
2010-05-24
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/086d73ccd6c0
                                     
2010-05-28



Hardware and Software, Engineered to Work Together