On 5 August 2012 20:51,  <ju...@apache.org> wrote:
> Author: jukka
> Date: Sun Aug  5 19:51:15 2012
> New Revision: 1369655
>
> URL: http://svn.apache.org/viewvc?rev=1369655&view=rev
> Log:
> COMPRESS-197: Tar file for Android backup cannot be read
>
> Allow more than one or two NUL or space characters at the end of a field
>
> Added:
>     commons/proper/compress/trunk/src/test/resources/COMPRESS-197.tar
> Modified:
>     
> commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java
>     
> commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
>
> Modified: 
> commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java
> URL: 
> http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java?rev=1369655&r1=1369654&r2=1369655&view=diff
> ==============================================================================
> --- 
> commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java
>  (original)
> +++ 
> commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarUtils.java
>  Sun Aug  5 19:51:15 2012
> @@ -130,10 +130,11 @@ public class TarUtils {
>              throw new IllegalArgumentException(
>                      exceptionMessage(buffer, offset, length, end-1, 
> trailer));
>          }
> -        // May have additional NUL or space
> -        trailer = buffer[end-1];
> -        if (trailer == 0 || trailer == ' '){
> +        // May have additional NULs or spaces

The Javadoc also needs adjusting please.

> +        trailer = buffer[end - 1];
> +        while (start < end - 1 && (trailer == 0 || trailer == ' ')) {
>              end--;
> +            trailer = buffer[end - 1];
>          }
>
>          for ( ;start < end; start++) {
>
> Modified: 
> commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
> URL: 
> http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java?rev=1369655&r1=1369654&r2=1369655&view=diff
> ==============================================================================
> --- 
> commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
>  (original)
> +++ 
> commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
>  Sun Aug  5 19:51:15 2012
> @@ -20,10 +20,12 @@ package org.apache.commons.compress.arch
>
>  import static org.junit.Assert.assertEquals;
>  import static org.junit.Assert.assertTrue;
> +import static org.junit.Assert.fail;
>
>  import java.io.ByteArrayInputStream;
>  import java.io.File;
>  import java.io.FileInputStream;
> +import java.io.IOException;
>  import java.net.URI;
>  import java.net.URL;
>  import java.util.Calendar;
> @@ -120,4 +122,24 @@ public class TarArchiveInputStreamTest {
>          }
>      }
>
> -}
> \ No newline at end of file
> +    @Test
> +    public void testCompress197() throws Exception {
> +        TarArchiveInputStream tar = getTestStream("/COMPRESS-197.tar");
> +        try {
> +            TarArchiveEntry entry = tar.getNextTarEntry();
> +            while (entry != null) {
> +                entry = tar.getNextTarEntry();
> +            }
> +        } catch (IOException e) {
> +            fail("COMPRESS-197: " + e.getMessage());
> +        } finally {
> +            tar.close();
> +        }
> +    }
> +
> +    private TarArchiveInputStream getTestStream(String name) {
> +        return new TarArchiveInputStream(
> +                TarArchiveInputStreamTest.class.getResourceAsStream(name));
> +    }
> +
> +}
>
> Added: commons/proper/compress/trunk/src/test/resources/COMPRESS-197.tar
> URL: 
> http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/resources/COMPRESS-197.tar?rev=1369655&view=auto
> ==============================================================================
> Files commons/proper/compress/trunk/src/test/resources/COMPRESS-197.tar 
> (added) and commons/proper/compress/trunk/src/test/resources/COMPRESS-197.tar 
> Sun Aug  5 19:51:15 2012 differ
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to