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