Author: jukka
Date: Wed Feb 19 14:44:29 2014
New Revision: 1569770

URL: http://svn.apache.org/r1569770
Log:
OAK-1409: After crash, segment persistence is broken with failures in java.nio 
classes

Truncate the tar file if an invalid entry is found.

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java?rev=1569770&r1=1569769&r2=1569770&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java
 Wed Feb 19 14:44:29 2014
@@ -81,6 +81,8 @@ class TarFile {
 
             if (name.isEmpty() && size == 0) {
                 break; // no more entries in this file
+            } else if (position + BLOCK_SIZE + size > len) {
+                break; // invalid entry, truncate the file at this point
             }
 
             try {


Reply via email to