You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ck...@apache.org on 2018/07/27 03:59:08 UTC

[5/6] logging-log4j2 git commit: [LOG4J2-2391] StackLocator initializes PrivateSecurityManager

[LOG4J2-2391] StackLocator initializes PrivateSecurityManager

Regression introduced here, removing StackLocator.SECURITY_MANAGER
initialization: 55b9fd20907994a5115e28674d03ddb215e149b4


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/044e7add
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/044e7add
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/044e7add

Branch: refs/heads/master
Commit: 044e7addb2043ad629fc02d14ef29429e75ac0d0
Parents: 5eb02a1
Author: Carter Kozak <ck...@apache.org>
Authored: Thu Jul 26 22:27:32 2018 -0400
Committer: Carter Kozak <ck...@apache.org>
Committed: Thu Jul 26 23:57:59 2018 -0400

----------------------------------------------------------------------
 .../org/apache/logging/log4j/util/StackLocator.java  | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/044e7add/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java
index 3dfcd9b..fa7df44 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java
@@ -46,7 +46,7 @@ import java.util.Stack;
  */
 public final class StackLocator {
 
-    private static PrivateSecurityManager SECURITY_MANAGER;
+    private static final PrivateSecurityManager SECURITY_MANAGER;
 
     // Checkstyle Suppress: the lower-case 'u' ticks off CheckStyle...
     // CHECKSTYLE:OFF
@@ -82,6 +82,19 @@ public final class StackLocator {
             java7u25CompensationOffset = -1;
         }
 
+        PrivateSecurityManager psm;
+        try {
+            final SecurityManager sm = System.getSecurityManager();
+            if (sm != null) {
+                sm.checkPermission(new RuntimePermission("createSecurityManager"));
+            }
+            psm = new PrivateSecurityManager();
+        } catch (final SecurityException ignored) {
+            psm = null;
+        }
+
+        SECURITY_MANAGER = psm;
+
         GET_CALLER_CLASS = getCallerClass;
         JDK_7u25_OFFSET = java7u25CompensationOffset;