diff --git a/tar/asm/assemble_test.go b/tar/asm/assemble_test.go index 6cb7850..cfbcca6 100644 --- a/tar/asm/assemble_test.go +++ b/tar/asm/assemble_test.go @@ -140,6 +140,7 @@ var testCases = []struct { {"./testdata/iso-8859.tar.gz", "ddafa51cb03c74ec117ab366ee2240d13bba1ec3", 10240}, {"./testdata/extranils.tar.gz", "e187b4b3e739deaccc257342f4940f34403dc588", 10648}, {"./testdata/notenoughnils.tar.gz", "72f93f41efd95290baa5c174c234f5d4c22ce601", 512}, + {"./testdata/1c51fc286aa95d9413226599576bafa38490b1e292375c90de095855b64caea6", "946caa03167a8cc707db6ff9785608b652e631dc", 1024}, } func TestTarStream(t *testing.T) { diff --git a/tar/asm/disassemble.go b/tar/asm/disassemble.go index 009b3f5..33cffba 100644 --- a/tar/asm/disassemble.go +++ b/tar/asm/disassemble.go @@ -135,6 +135,9 @@ func NewInputTarStream(r io.Reader, p storage.Packer, fp storage.FilePutter) (io } isEOF = true } + if n == 0 { + break + } _, err = p.AddEntry(storage.Entry{ Type: storage.SegmentType, Payload: paddingChunk[:n], diff --git a/tar/asm/testdata/1c51fc286aa95d9413226599576bafa38490b1e292375c90de095855b64caea6 b/tar/asm/testdata/1c51fc286aa95d9413226599576bafa38490b1e292375c90de095855b64caea6 new file mode 100644 index 0000000..12243c7 Binary files /dev/null and b/tar/asm/testdata/1c51fc286aa95d9413226599576bafa38490b1e292375c90de095855b64caea6 differ