Does Java do anything to prevent files from changing out from under it?

Alan Bateman Alan.Bateman at Sun.COM
Wed May 14 20:35:13 UTC 2008


Peter B. Kessler wrote:
> Does the Java platform do anything to prevent files from changing
> out from under it?  E.g., once one has opened a jar file for class
> loading, could a malicious (or oblivious) user write to the jar
> file and disturb the VM?  Or is that all relegated to "the operating
> system", file system permissions, etc.?
>
>             ... peter
There isn't anything special so files that are open can be changed or 
replaced by an attacker or unintentionally assuming they have 
appropriate permissions. It's harder to replace files on Windows due to 
file locking. When a file is replaced then for regular I/O we will 
continue to access the original file until it is closed. As you mention 
JAR files then I wonder if you might be thinking about mmap'ed files? 
Are you looking at an error log with a SIGBUS by any chance :-)   I 
believe we currently mmap the central directory of JAR/zip files. Dave 
or Martin may want to say more about this but periodically people try to 
replace JARs on the file system and wonder why the VM falls over soon 
afterwards.

-Alan.



More information about the core-libs-dev mailing list