summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-08-11 21:49:17 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-08-11 18:27:27 +0000
commitd6b99c6b1557584ca7e66e7365c08eae73d88ef4 (patch)
tree18b7aba02dd5408d576ffe1ec4319a80c40952b9
parent7c21343422f96a89f229392a5194e15a11d8ee71 (diff)
parentf1c8d808ea349df134c0ee0908c1fc8c91493e0a (diff)
downloadlibcore-d6b99c6b1557584ca7e66e7365c08eae73d88ef4.zip
libcore-d6b99c6b1557584ca7e66e7365c08eae73d88ef4.tar.gz
libcore-d6b99c6b1557584ca7e66e7365c08eae73d88ef4.tar.bz2
Merge "Don't allow Class.class.getDeclaredConstructor().setAccessible()."
-rw-r--r--libart/src/main/java/java/lang/reflect/AccessibleObject.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/libart/src/main/java/java/lang/reflect/AccessibleObject.java b/libart/src/main/java/java/lang/reflect/AccessibleObject.java
index dd57a12..a1e2743 100644
--- a/libart/src/main/java/java/lang/reflect/AccessibleObject.java
+++ b/libart/src/main/java/java/lang/reflect/AccessibleObject.java
@@ -71,6 +71,13 @@ public class AccessibleObject implements AnnotatedElement {
* IllegalAccessExceptions}.
*/
public void setAccessible(boolean flag) {
+ try {
+ if (equals(Class.class.getDeclaredConstructor())) {
+ throw new SecurityException("Can't make class constructor accessible");
+ }
+ } catch (NoSuchMethodException e) {
+ throw new AssertionError("Couldn't find class constructor");
+ }
this.flag = flag;
}