From 053bc0eec816d9740528d35b9324ffb6a635c3b5 Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Mon, 20 Dec 2010 18:19:52 +0000 Subject: [PATCH] PR libgcj/46774: Create dynamic ProtectionDomain instances which check the system policy. 2010-12-13 Andrew John Hughes PR libgcj/46774 * libjava/java/security/VMAccessController.java: (DEFAULT_CONTEXT): Create ProtectionDomain with four argument constructor (arguments are the same as those implied by the two argument constructor). (getContext()): Create ProtectionDomain instances with four argument constructor using a null Principal array (as before) but including the classloader, which was always null before. From-SVN: r168092 --- libjava/ChangeLog | 12 ++++++++++++ .../java/security/VMAccessController.class | Bin 4797 -> 4908 bytes libjava/java/security/VMAccessController.java | 8 +++++--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 036bdddc0ae7..94e698eca8f2 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,15 @@ +2010-12-13 Andrew John Hughes + + PR libgcj/46774 + * libjava/java/security/VMAccessController.java: + (DEFAULT_CONTEXT): Create ProtectionDomain with + four argument constructor (arguments are the same + as those implied by the two argument constructor). + (getContext()): Create ProtectionDomain instances + with four argument constructor using a null Principal + array (as before) but including the classloader, which + was always null before. + 2010-12-16 Release Manager * GCC 4.5.2 released. diff --git a/libjava/classpath/lib/java/security/VMAccessController.class b/libjava/classpath/lib/java/security/VMAccessController.class index d05cd9c84563057d1913a73bbf76e0f79f1b626d..9a129803916b867882348cf74e336fe473881338 100644 GIT binary patch delta 756 zc-nQ6Z%oZ$6vsd3-n#d9f0dHOF0<}TCe^x?uuB^nFKD9|A01E=jY3gQ2}2;~e-#vv_XmBu;2;VaDd75hsITpH&UESV|jN^|KHaWRxjR0~=` ze&uF=MW9lZZR^v9tS;MZp0MCQj2c3l9Su0JDjge*?P0MN5#vDEnuJ6=xJhFz>)F5x z5>8+-<{Q1EO0auoD7u+_)89p3)Q_Wl#2KPOY6&9!Dz)^~80N zl^uDugKX2A(@yRUd^5gg)8{a9A{OQ7PQ9I~lZ2V~g&vl8Y-VkCqithrlju2W41wcO+c zU9`}xth?Od9=+V>DGwOrA+LGF2#@(hKVNvlPo4=3NHEVOMA_lAijzT!W=K+aCF#7B zO$^HxMkJF_*}<6XW?c3#A$jU9P`HdqIatG#9A;YT_%YMmBg`R4j#17&h2q3d1;eVj z$+DL>)L~(r>{3)THH2JA%eN}U$I{{=2D%D(^r delta 678 zc-lRZTS$~q5XXPB*Ke0La!GJ2aWS>L>}qOIiL z_mV-SWoac*YOA;?Q9)s4U{V-j<)w?2=~E9yb-s!in3@0F&i~9gok;_U&Y_?EgTNZ* zZ#!>_Y13+b!L&>tm4xnO({@{uMvLGmtq7J@Ro0YyH7+SwePCZ%u+E$7b<)OFJ6H6h z+EQ~n9r{_#7vp3<*B5bvBZ5{QY}is+SKpv2yT5B=W~)>SUOm>~)mOMejtkf^tK;+Z zHdnI#%(c$vBY>Y=)|1CZQb<=>uc~n>FGJA;H>=1b3&G!=y?9idrf*nP9yzJIm(+&N zr$yT{16mipX8aL$6}m6>Qs~jb6oo17qx4U#^|)Gs z{Z*o;Mm3p-$3DxJQKhN*?f(M~pJW7>^m}3GYq{bOb zZo-8{j#JA)g;J%2IwsVTGo^^vik^ua*})q$^%%wC=Pi?1sE|aalxL+%;+e*#q(=RU z8AaAkqw0Il2h|f%&-Rge9O^>ZN@j5=n)!SpZY_4jG=tB4K@%sZIIRc>b4r`|`WqX9 Bud@IE diff --git a/libjava/java/security/VMAccessController.java b/libjava/java/security/VMAccessController.java index 8436c9ccb60b..587f311142d1 100644 --- a/libjava/java/security/VMAccessController.java +++ b/libjava/java/security/VMAccessController.java @@ -56,7 +56,7 @@ final class VMAccessController Permissions permissions = new Permissions(); permissions.add(new AllPermission()); ProtectionDomain[] domain = new ProtectionDomain[] { - new ProtectionDomain(source, permissions) + new ProtectionDomain(source, permissions, null, null) }; DEFAULT_CONTEXT = new AccessControlContext(domain); } @@ -178,12 +178,13 @@ final class VMAccessController for (int i = 3; i < classes.length; i++) { Class clazz = classes[i]; + ClassLoader loader = clazz.getClassLoader(); if (DEBUG) { debug("checking " + clazz); // subject to getClassLoader RuntimePermission - debug("loader = " + clazz.getClassLoader()); + debug("loader = " + loader); } if (privileged && i == classes.length - 2) @@ -208,7 +209,8 @@ final class VMAccessController // Create a static snapshot of this domain, which may change over time // if the current policy changes. domains.add(new ProtectionDomain(domain.getCodeSource(), - domain.getPermissions())); + domain.getPermissions(), + loader, null)); } if (DEBUG) -- 2.47.2