summaryrefslogtreecommitdiffstats
path: root/libart
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-08-08 16:09:58 -0700
committerMathieu Chartier <mathieuc@google.com>2014-08-11 14:52:24 -0700
commit8fc0cb95f87a8a31c56793a3d24e58bcc5d88025 (patch)
tree49df130aced64204cdae6be9e7e8842b95a5b31d /libart
parent065d7764ac1dfe74ee94d17ca6c810de37b57d3e (diff)
downloadlibcore-8fc0cb95f87a8a31c56793a3d24e58bcc5d88025.zip
libcore-8fc0cb95f87a8a31c56793a3d24e58bcc5d88025.tar.gz
libcore-8fc0cb95f87a8a31c56793a3d24e58bcc5d88025.tar.bz2
Don't allow Class.class.getDeclaredConstructor().setAccessible().
The new behavior is to throw a SecurityException. Bug: 16866726 Bug: https://code.google.com/p/android-developer-preview/issues/detail?id=561 (cherry picked from commit f1c8d808ea349df134c0ee0908c1fc8c91493e0a) Change-Id: I8e6db5741b03cebe20c32b4e5b251d45cb9020d8
Diffstat (limited to 'libart')
-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;
}