You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2014/06/02 20:34:25 UTC

svn commit: r1599299 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file: TarReader.java TarWriter.java

Author: jukka
Date: Mon Jun  2 18:34:25 2014
New Revision: 1599299

URL: http://svn.apache.org/r1599299
Log:
OAK-1869: TarMK: Incorrect tar entry verification in recovery mode

Use the exact same pattern when generating and verifying the entry checksum.

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

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java?rev=1599299&r1=1599298&r2=1599299&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java Mon Jun  2 18:34:25 2014
@@ -357,8 +357,7 @@ class TarReader {
                 sum += ' ';
             }
 
-            byte[] checkbytes = String.format("%06o  ", sum).getBytes(UTF_8);
-            checkbytes[7] = 0;
+            byte[] checkbytes = String.format("%06o\0 ", sum).getBytes(UTF_8);
             for (int i = 0; i < checkbytes.length; i++) {
                 if (checkbytes[i] != header[148 + i]) {
                     log.warn("Invalid entry checksum at offset {} in tar file {}, skipping...",

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarWriter.java?rev=1599299&r1=1599298&r2=1599299&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarWriter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarWriter.java Mon Jun  2 18:34:25 2014
@@ -384,9 +384,8 @@ class TarWriter {
             checksum += header[i] & 0xff;
         }
         System.arraycopy(
-                String.format("%06o", checksum).getBytes(UTF_8), 0,
-                header, 148, 6);
-        header[154] = 0;
+                String.format("%06o\0 ", checksum).getBytes(UTF_8), 0,
+                header, 148, 8);
 
         return header;
     }