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

incorrect processing of libjimage method JIMAGE_FindResource with improper version string

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P3 P3
    • tbd
    • None
    • tools
    • na
    • x86_64
    • linux

      JIMAGE_FindResource does not care about the value of version, it returns resource with any string not only "9.0". Also java dumps core on null value of version.

      Code:

      $ cat WrongVersion.java
      import jdk.internal.jimage.ImageNativeSubstrate;

      public class WrongVersion {

          static String imageFile = System.getProperty("java.home") + "/lib/modules/bootmodules.jimage";

          public static void main(String... args) throws Exception {
              long jimageHandle = ImageNativeSubstrate.JIMAGE_Open(imageFile);

              long[] size = new long[1];
              long result = ImageNativeSubstrate.JIMAGE_FindResource(
                  jimageHandle, "java.base", "8.0", "java/lang/String.class", size);
              System.out.println("Version = 8.0 JIMAGE_FindResource returns " + result);

              result = ImageNativeSubstrate.JIMAGE_FindResource(
                  jimageHandle, "java.base", "any string", "java/lang/String.class", size);
              System.out.println("Version = \"any string\" JIMAGE_FindResource returns " + result);

              result = ImageNativeSubstrate.JIMAGE_FindResource(
                  jimageHandle, "java.base", null, "java/lang/String.class", size);
              System.out.println("Version = null JIMAGE_FindResource returns " + result);

              ImageNativeSubstrate.JIMAGE_Close(jimageHandle);
          }
      }

      Actual result:

      $ javac WrongVersion.java
      $ java WrongVersion
      Version = 8.0 JIMAGE_FindResource returns 344522
      Version = "any string" JIMAGE_FindResource returns 344522
      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # SIGSEGV (0xb) at pc=0x00007f5faf78fe14, pid=20547, tid=20548
      #
      # JRE version: OpenJDK Runtime Environment (9.0) (build 1.9.0-internal-sep_2015_10_27_03_42-b00)
      # Java VM: OpenJDK 64-Bit Server VM (1.9.0-internal-sep_2015_10_27_03_42-b00, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0x6c0e14] jni_GetStringUTFChars+0x74
      #
      # Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %P" (or dumping to /home/sep/Stuff/Java/myBugs/jimage/core.20547)
      #
      # An error report file with more information is saved as:
      # /home/sep/Stuff/Java/myBugs/jimage/hs_err_pid20547.log
      #
      # If you would like to submit a bug report, please visit:
      # http://bugreport.java.com/bugreport/crash.jsp
      #
      Aborted (core dumped)

      Expected result:

      Return 0.

            jlaskey Jim Laskey
            spikalev Sergei Pikalev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: