Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8242352

openjdk1.8.0_232 did not report ClassFormatError when class name is illegal

XMLWordPrintable

    • x86_64
    • linux

      ADDITIONAL SYSTEM INFORMATION :
      openjdk version "1.8.0_232"
      OpenJDK Runtime Environment (build 1.8.0_232-b09)
      OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

      OS and version: Ubuntu 16.04.6 LTS
      CPU model: Intel(R) Xeon(R) CPU E5-4610 v4 @ 1.80GHz
      Number of CPU cores: 4CPUs, each has 10 cores
      Size of physical memory: 16384 MB * 20
      Inside Linux container? No

      A DESCRIPTION OF THE PROBLEM :
      We are doing fuzz testing on JVMs. We generated a class file with an illegal class name "L...LLLorg/apache/tools/ant/launch/Launcher;;;...;"(... indicates there are lots of L and ;) in the constant pool. According to §4.2.1 and §4.2.2 of The Java Language Specification, Java SE 8 Edition, it is an illegal class name. But openjdk1.8.0_232 can run it successfully while OpenJ9(1.8.0_232) openjdk9.0.4 and openjdk11.0.5 throw a ClassFormatError.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. Downloadand extract it.
      2. In "ant" directory, run command "java -cp ant-launcher/ org.apache.tools.ant.launch.Launcher compile jar run"

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Throw a ClassFormatError because of the illegal class name.
      ACTUAL -
      Run it with no error or exception.

      ---------- BEGIN SOURCE ----------
      The class file is in, the file path is "ant-launcher/org/apache/tools/ant/launch/Launcher.class".
      ---------- END SOURCE ----------

      FREQUENCY : always


            pnarayanaswa Praveen Narayanaswamy
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: