diff options
Diffstat (limited to 'java/openjdk6/files/icedtea/security/20130416/8006435.patch')
-rw-r--r-- | java/openjdk6/files/icedtea/security/20130416/8006435.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/java/openjdk6/files/icedtea/security/20130416/8006435.patch b/java/openjdk6/files/icedtea/security/20130416/8006435.patch new file mode 100644 index 000000000000..fc2aa8d125c2 --- /dev/null +++ b/java/openjdk6/files/icedtea/security/20130416/8006435.patch @@ -0,0 +1,76 @@ +# HG changeset patch +# User andrew +# Date 1365784460 -3600 +# Node ID e0803f17f824df0bbedf0dd03aa06938389b1b9f +# Parent dfa1c658a62a54dbcfa02e96c51af21a3cc71907 +8006435: Improvements in JMX +Summary: Improvements in JMX +Reviewed-by: dfuchs, skoivu + +diff --git a/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java b/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java +--- jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java ++++ jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -213,7 +213,6 @@ + + Object moi = null; + +- + // ------------------------------ + // ------------------------------ + Constructor cons = findConstructor(theClass, null); +@@ -224,6 +223,7 @@ + // Instantiate the new object + try { + ReflectUtil.checkPackageAccess(theClass); ++ ReflectUtil.ensureClassAccess(theClass); + moi= cons.newInstance(); + } catch (InvocationTargetException e) { + // Wrap the exception. +@@ -270,7 +270,6 @@ + checkMBeanPermission(theClass, null, null, "instantiate"); + + // Instantiate the new object +- + // ------------------------------ + // ------------------------------ + final Class[] tab; +@@ -301,6 +300,7 @@ + } + try { + ReflectUtil.checkPackageAccess(theClass); ++ ReflectUtil.ensureClassAccess(theClass); + moi = cons.newInstance(params); + } + catch (NoSuchMethodError error) { +diff --git a/src/share/classes/sun/reflect/misc/ReflectUtil.java b/src/share/classes/sun/reflect/misc/ReflectUtil.java +--- jdk/src/share/classes/sun/reflect/misc/ReflectUtil.java ++++ jdk/src/share/classes/sun/reflect/misc/ReflectUtil.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -46,6 +46,14 @@ + return cls.newInstance(); + } + ++ public static void ensureClassAccess(Class clazz) ++ throws IllegalAccessException ++ { ++ int mod = clazz.getModifiers(); ++ if ( ! Modifier.isPublic(mod) ){ ++ throw new IllegalAccessException("Class is not public and can't be instantiated"); ++ } ++ } + /* + * Reflection.ensureMemberAccess is overly-restrictive + * due to a bug. We awkwardly work around it for now. |