From a7debba54b93688c9aecca5069f9a1aa4aeb8555 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 11 Sep 2017 23:57:24 +0200 Subject: [PATCH 1/3] [BUGFIX] Added getProtectionDomain to ClassRedirect --- .../core/asm/redirect/ClassRedirect.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java index 4e0be58..6f252dc 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java @@ -8,9 +8,25 @@ import java.io.InputStream; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.ProtectionDomain; public class ClassRedirect { + public static ProtectionDomain getProtectionDomain(final Class clazz) { + if (validStack()) { + return AccessController.doPrivileged(new PrivilegedAction() { + public ProtectionDomain run() { + return clazz.getProtectionDomain(); + } + }); + } + + System.err.println(clazz.getName() + " getProtectionDomain request Blocked."); + throw RedirectClassAdapter.createSecurityException(); + } + public static Object newInstance(Class c) throws IllegalAccessException, InstantiationException { if (validStack()) { return c.newInstance(); @@ -136,8 +152,9 @@ public class ClassRedirect { private static boolean validStack() { Exception e = new Exception(); for (StackTraceElement elem : e.getStackTrace()) { - if (elem.getClassName().equals(Script.class.getName())) + if (elem.getClassName().equals(Script.class.getName())) { return true; + } } return false; } From bbe7496ecb7819c350afe9a707c6d6e6f288b207 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Tue, 12 Sep 2017 00:00:07 +0200 Subject: [PATCH 2/3] [BUGFIX] Granting access instead of blocking it --- .../parabot/core/asm/redirect/ClassRedirect.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java index 6f252dc..dde1499 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ClassRedirect.java @@ -15,16 +15,13 @@ import java.security.ProtectionDomain; public class ClassRedirect { public static ProtectionDomain getProtectionDomain(final Class clazz) { - if (validStack()) { - return AccessController.doPrivileged(new PrivilegedAction() { - public ProtectionDomain run() { - return clazz.getProtectionDomain(); - } - }); - } + System.err.println(clazz.getName() + " getProtectionDomain request granted."); - System.err.println(clazz.getName() + " getProtectionDomain request Blocked."); - throw RedirectClassAdapter.createSecurityException(); + return AccessController.doPrivileged(new PrivilegedAction() { + public ProtectionDomain run() { + return clazz.getProtectionDomain(); + } + }); } public static Object newInstance(Class c) throws IllegalAccessException, InstantiationException { From a6b444572d315f6b6d180189fda18899f3059cc1 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Tue, 12 Sep 2017 00:04:17 +0200 Subject: [PATCH 3/3] [BUGFIX] Added createImage with ImageProducer --- .../org/parabot/core/asm/redirect/ToolkitRedirect.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java index bb01d54..820386e 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ToolkitRedirect.java @@ -5,6 +5,7 @@ import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; +import java.awt.image.ImageProducer; import java.io.IOException; import java.net.URL; @@ -46,7 +47,11 @@ public class ToolkitRedirect { public static Image createImage(Toolkit t, String s){ return t.createImage(s); } - + + public static Image createImage(Toolkit t, ImageProducer i){ + return t.createImage(i); + } + public static Image getImage(Toolkit t,URL u){ return t.getImage(u); }