You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Richard Liang <ri...@gmail.com> on 2006/04/03 05:20:05 UTC
Re: [jira] Updated: (HARMONY-121) Stack overflow running security
manager test
Mikhail Loenko (JIRA) wrote:
> [ http://issues.apache.org/jira/browse/HARMONY-121?page=all ]
>
> Mikhail Loenko updated HARMONY-121:
> -----------------------------------
>
> Attachment: policy.txt
>
> I've replaced 'Preload classes used for checkPackageAccess' with 'Preload and initialize Policy implementation classes'
> One need to run regression tests to verify that everything works fine with checkPackageAccess.
>
> Anyway calling checkPackageAccess from the System does not guarantee the desired result:
> in the user's security manager it might be void
>
> Thanks,
> Mikhail
>
>
>> Stack overflow running security manager test
>> --------------------------------------------
>>
>> Key: HARMONY-121
>> URL: http://issues.apache.org/jira/browse/HARMONY-121
>> Project: Harmony
>> Type: Bug
>> Components: Classlib
>> Reporter: Tim Ellison
>> Attachments: policy.txt
>>
>> The following test case runs ok on the reference impl.but fails with a stack overflow on Harmony code.
>> private static class MySecurityManager extends SecurityManager {
>> private static final RuntimePermission SET_MANAGER_PERMISSION =
>> new RuntimePermission("setSecurityManager");
>>
>> public void checkPermission(Permission perm) {
>> if (!perm.equals(SET_MANAGER_PERMISSION)) {
>> super.checkPermission(perm);
>> }
>> }
>> }
>> public void test_getProperties() {
>> System.setSecurityManager(new MySecurityManager());
>> try {
>> System.getProperties();
>> } catch (SecurityException e) {
>> // Expected
>> } finally {
>> System.setSecurityManager(null);
>> }
>> }
>> The stack overflow is as follows:
>> java.lang.StackOverflowError
>> at java.util.PropertyPermission.equals(PropertyPermission.java:78)
>> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:44)
>> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
>> at java.lang.System.getProperties(System.java:519)
>> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84)
>> at java.security.AccessController.doPrivileged(AccessController.java:183)
>> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272)
>> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194)
>> at java.security.Policy.implies(Policy.java:77)
>> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118)
>> at java.security.AccessController.checkPermission(AccessController.java:88)
>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704)
>> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45)
>> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
>> at java.lang.System.getProperties(System.java:519)
>> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84)
>> at java.security.AccessController.doPrivileged(AccessController.java:183)
>> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272)
>> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194)
>> at java.security.Policy.implies(Policy.java:77)
>> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118)
>> at java.security.AccessController.checkPermission(AccessController.java:88)
>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704)
>> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45)
>> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
>> at java.lang.System.getProperties(System.java:519)
>> <snip>
>> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84)
>> at java.security.AccessController.doPrivileged(AccessController.java:183)
>> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272)
>> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194)
>> at java.security.Policy.implies(Policy.java:77)
>> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118)
>> at java.security.AccessController.checkPermission(AccessController.java:88)
>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704)
>> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45)
>> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
>> at java.lang.System.getProperties(System.java:519)
>> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84)
>> at java.security.AccessController.doPrivileged(AccessController.java:183)
>> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272)
>> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194)
>> at java.security.Policy.implies(Policy.java:77)
>> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118)
>> at java.security.AccessController.checkPermission(AccessController.java:88)
>> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704)
>> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45)
>> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
>> at java.lang.System.getProperties(System.java:519)
>> at org.apache.harmony.tests.java.lang.SecurityManagerTest.test_getProperties(SecurityManagerTest.java:53)
>> at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:211)
>> at java.lang.reflect.Method.invoke(Method.java:248)
>> at junit.framework.TestCase.runTest(TestCase.java:154)
>> at junit.framework.TestCase.runBare(TestCase.java:127)
>> at junit.framework.TestResult$1.protect(TestResult.java:106)
>> at junit.framework.TestResult.runProtected(TestResult.java:124)
>> at junit.framework.TestResult.run(TestResult.java:109)
>> at junit.framework.TestCase.run(TestCase.java:118)
>> at junit.framework.TestSuite.runTest(TestSuite.java:208)
>> at junit.framework.TestSuite.run(TestSuite.java:203)
>> at junit.framework.TestSuite.runTest(TestSuite.java:208)
>> at junit.framework.TestSuite.run(TestSuite.java:203)
>> at junit.framework.TestSuite.runTest(TestSuite.java:208)
>> at junit.framework.TestSuite.run(TestSuite.java:203)
>> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
>> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
>> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
>>
>
>
Hello Mikhail,
Would you please apply the patch you provided? :-) We have some
dependency on this issue. Thanks a lot.
--
Richard Liang
China Software Development Lab, IBM
Re: [jira] Updated: (HARMONY-121) Stack overflow running security manager test
Posted by Mikhail Loenko <ml...@gmail.com>.
Hi Richard
I'll apply the patch as soon as I get back broadband (in ~15 hours from now)
Thanks,
Mikhail
2006/4/3, Richard Liang <ri...@gmail.com>:
> Mikhail Loenko (JIRA) wrote:
> > [ http://issues.apache.org/jira/browse/HARMONY-121?page=all ]
> >
> > Mikhail Loenko updated HARMONY-121:
> > -----------------------------------
> >
> > Attachment: policy.txt
> >
> > I've replaced 'Preload classes used for checkPackageAccess' with 'Preload and initialize Policy implementation classes'
> > One need to run regression tests to verify that everything works fine with checkPackageAccess.
> >
> > Anyway calling checkPackageAccess from the System does not guarantee the desired result:
> > in the user's security manager it might be void
> >
> > Thanks,
> > Mikhail
> >
> >
> >> Stack overflow running security manager test
> >> --------------------------------------------
> >>
> >> Key: HARMONY-121
> >> URL: http://issues.apache.org/jira/browse/HARMONY-121
> >> Project: Harmony
> >> Type: Bug
> >> Components: Classlib
> >> Reporter: Tim Ellison
> >> Attachments: policy.txt
> >>
> >> The following test case runs ok on the reference impl.but fails with a stack overflow on Harmony code.
> >> private static class MySecurityManager extends SecurityManager {
> >> private static final RuntimePermission SET_MANAGER_PERMISSION =
> >> new RuntimePermission("setSecurityManager");
> >>
> >> public void checkPermission(Permission perm) {
> >> if (!perm.equals(SET_MANAGER_PERMISSION)) {
> >> super.checkPermission(perm);
> >> }
> >> }
> >> }
> >> public void test_getProperties() {
> >> System.setSecurityManager(new MySecurityManager());
> >> try {
> >> System.getProperties();
> >> } catch (SecurityException e) {
> >> // Expected
> >> } finally {
> >> System.setSecurityManager(null);
> >> }
> >> }
> >> The stack overflow is as follows:
> >> java.lang.StackOverflowError
> >> at java.util.PropertyPermission.equals(PropertyPermission.java:78)
> >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:44)
> >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
> >> at java.lang.System.getProperties(System.java:519)
> >> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84)
> >> at java.security.AccessController.doPrivileged(AccessController.java:183)
> >> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272)
> >> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194)
> >> at java.security.Policy.implies(Policy.java:77)
> >> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118)
> >> at java.security.AccessController.checkPermission(AccessController.java:88)
> >> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704)
> >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45)
> >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
> >> at java.lang.System.getProperties(System.java:519)
> >> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84)
> >> at java.security.AccessController.doPrivileged(AccessController.java:183)
> >> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272)
> >> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194)
> >> at java.security.Policy.implies(Policy.java:77)
> >> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118)
> >> at java.security.AccessController.checkPermission(AccessController.java:88)
> >> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704)
> >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45)
> >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
> >> at java.lang.System.getProperties(System.java:519)
> >> <snip>
> >> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84)
> >> at java.security.AccessController.doPrivileged(AccessController.java:183)
> >> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272)
> >> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194)
> >> at java.security.Policy.implies(Policy.java:77)
> >> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118)
> >> at java.security.AccessController.checkPermission(AccessController.java:88)
> >> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704)
> >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45)
> >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
> >> at java.lang.System.getProperties(System.java:519)
> >> at org.apache.harmony.security.fortress.PolicyUtils$SystemKit.run(PolicyUtils.java:84)
> >> at java.security.AccessController.doPrivileged(AccessController.java:183)
> >> at org.apache.harmony.security.fortress.DefaultPolicy.refresh(DefaultPolicy.java:272)
> >> at org.apache.harmony.security.fortress.DefaultPolicy.getPermissions(DefaultPolicy.java:194)
> >> at java.security.Policy.implies(Policy.java:77)
> >> at java.security.ProtectionDomain.implies(ProtectionDomain.java:118)
> >> at java.security.AccessController.checkPermission(AccessController.java:88)
> >> at java.lang.SecurityManager.checkPermission(SecurityManager.java:704)
> >> at org.apache.harmony.tests.java.lang.SecurityManagerTest$MySecurityManager.checkPermission(SecurityManagerTest.java:45)
> >> at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:343)
> >> at java.lang.System.getProperties(System.java:519)
> >> at org.apache.harmony.tests.java.lang.SecurityManagerTest.test_getProperties(SecurityManagerTest.java:53)
> >> at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:211)
> >> at java.lang.reflect.Method.invoke(Method.java:248)
> >> at junit.framework.TestCase.runTest(TestCase.java:154)
> >> at junit.framework.TestCase.runBare(TestCase.java:127)
> >> at junit.framework.TestResult$1.protect(TestResult.java:106)
> >> at junit.framework.TestResult.runProtected(TestResult.java:124)
> >> at junit.framework.TestResult.run(TestResult.java:109)
> >> at junit.framework.TestCase.run(TestCase.java:118)
> >> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> >> at junit.framework.TestSuite.run(TestSuite.java:203)
> >> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> >> at junit.framework.TestSuite.run(TestSuite.java:203)
> >> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> >> at junit.framework.TestSuite.run(TestSuite.java:203)
> >> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
> >> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
> >> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> >>
> >
> >
> Hello Mikhail,
>
> Would you please apply the patch you provided? :-) We have some
> dependency on this issue. Thanks a lot.
>
> --
> Richard Liang
> China Software Development Lab, IBM
>
>
>
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org