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

To overload checkPermission causes infinite recursive call and StackoverFlow

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P3 P3
    • None
    • 6
    • security-libs

      When user replace checkPermission and invoke java.security.Policy.refresh() in the program,
      infinite call occurs and causes StackOverFlow.

      REPRODUCE :
       1) Modify the attached compile.bat and invoke to compile test programs.
       2) Modify(to set JAVA_HOME in) on.bat and off.bat
          on.bat : Use user defined security manager
          off.bat : Use default security manager
       3) Invoke on.bat and off.bat
          You can see the follwoing stack trace with invoking on.bat
          (full stacktrace is in log-prop-on.txt)


      Exception in thread "main" java.lang.StackOverflowError
      at java.security.AccessController.doPrivileged(Native Method)
      at java.io.FilePermission.init(FilePermission.java:183)
      at java.io.FilePermission.<init>(FilePermission.java:249)
      at sun.net.www.protocol.file.FileURLConnection.getPermission(FileURLConnection.java:200)
      at sun.security.provider.PolicyFile.canonicalizeCodebase(PolicyFile.java:1780)
      at sun.security.provider.PolicyFile.access$700(PolicyFile.java:263)
      at sun.security.provider.PolicyFile$5.run(PolicyFile.java:1211)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1207)
      at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1155)
      at sun.security.provider.PolicyFile.implies(PolicyFile.java:1110)
      at java.security.ProtectionDomain.implies(ProtectionDomain.java:213)
      at java.security.AccessControlContext.checkPermission(AccessControlContext.java:301)
      at java.security.AccessController.checkPermission(AccessController.java:546)
      at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
      at OverrideSecurityManager.checkPermission(OverrideSecurityManager.java:6)
      at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
      at java.io.File.isDirectory(File.java:752)
      .........

            claisunw Charlie Lai (Inactive)
            tbaba Tadayuki Baba (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: