[ 
https://issues.apache.org/jira/browse/DERBY-5363?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dag H. Wanvik updated DERBY-5363:
---------------------------------

    Attachment: derby-5363-full-4.stat
                derby-5363-full-4.diff

Thanks for your diligent review, Knut! Uploading patch *-full-4 in which we:

- fixed the misguided StreamFileContainer exception, early draft cruft

- updated the JVMInfo to default to 7 if >= 8

- added creating a temporary table to testTmpDirectory test case

- changed naming to avoid having to list all tests that are part of the 
majority group as suggested

- excluded the two lax cases from running if lax testing isn't supported

- in suite(), declared it as throws Exception and avoid swallowing the stack 
trace of the underlying exception when calling checkAccessToOwner, ditto in 
checkAccessToOwner

- added missing blank in warning string

- converted missing use of helper methods from BaseJDBCTestCase

- switched to using PrivilegedFileOpsForTests#exists

- removed spurious white space diff in NetworkServerTestSetup

- changed to using "/" since it's a cheaper pattern than reading the property 
and works fine on Windows, too.

- removed instances of now superfluous exception handling code similar to this:
  ioe instanceof FileNotFoundException &&
      ((FileNotFoundException)ioe).getCause() instanceof
      AccessControlException) {

  since limitAccessToOwner no longer wraps AccessControlException in a 
IOException


Answers to your questions:

> - I was a little surprised that no security manager magic was needed to read 
> this system property, like we have to do other places in the tests:
> 
> + final static String pathSep = System.getProperty("file.separator");
> 
> Maybe it's because the class is loaded before the security manager is 
> installed? The constants File.separator or File.separatorChar could also be 
> used, without any security manager concerns.

Not sure what's going on here. I tried to move it inside a test, but I still 
got no security exception. I thought I had seen somewhere that this property 
was safe to read, but I can't say where. I found this, though:

Cf. http://www.iam.ubc.ca/guides/javatut99/applet/practical/properties.html

which lists this as a legal property for an applet to read. I guess if a 
property is considered safe for an applet to read, it's safe for an app running 
under Java security, too..

> - testCliServerIsRestrictive(): Just curious... I thought 
> assertDirectoryDeleted() already handled the cases where the file handles 
> weren't closed just yet, so that sleeping shouldn't be necessary?
> 
> + Thread.sleep(2000);
> + // ..so hopefully server will have closed files handles before
> + // we try to delete files:
> + assertDirectoryDeleted(traceDirF);

That's true, but I didn't like seeing the warning in my log.. ;-) This way, 
mostly the method doesn't have to retry..

Rerunning regressions.


> Tighten default permissions of DB files with >= JDK6
> ----------------------------------------------------
>
>                 Key: DERBY-5363
>                 URL: https://issues.apache.org/jira/browse/DERBY-5363
>             Project: Derby
>          Issue Type: Improvement
>          Components: Miscellaneous, Services, Store
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>         Attachments: derby-5363-basic-1.diff, derby-5363-basic-1.stat, 
> derby-5363-basic-2.diff, derby-5363-basic-2.stat, derby-5363-basic-3.diff, 
> derby-5363-basic-3.stat, derby-5363-full-1.diff, derby-5363-full-1.stat, 
> derby-5363-full-2.diff, derby-5363-full-2.stat, derby-5363-full-3.diff, 
> derby-5363-full-3.stat, derby-5363-full-4.diff, derby-5363-full-4.stat, 
> derby-5363-server-1.diff, permission-5.diff, permission-5.stat, 
> permission-6.diff, permission-6.stat, property-table.png, releaseNote.html, 
> releaseNote.html, releaseNote.html, releaseNote.html, z.sql
>
>
> Before Java 6, files created by Derby would have the default
> permissions of the operating system context. Under Unix, this would
> depend on the effective umask of the process that started the Java VM.
> In Java 6 and 7, there are methods available that allows tightening up this
> (File.setReadable, setWritable), making it less likely that somebody
> would accidentally run Derby with a too lenient default.
> I suggest we take advantage of this, and let Derby by default (in Java
> 6 and higher) limit the visibility to the OS user that starts the VM,
> e.g. on Unix this would be equivalent to running with umask 0077. More
> secure by default is good, I think.
> We could have a flag, e.g. "derby.storage.useDefaultFilePermissions"
> that when set to true, would give the old behavior.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to