]> Cypherpunks repositories - gostls13.git/commitdiff
Regenerate v7.tar with a real V7 tar.
authorDavid Symonds <dsymonds@golang.org>
Sun, 9 Aug 2009 22:03:30 +0000 (15:03 -0700)
committerDavid Symonds <dsymonds@golang.org>
Sun, 9 Aug 2009 22:03:30 +0000 (15:03 -0700)
Fix octal parsing that it unearthed.

R=rsc
APPROVED=rsc
DELTA=11  (5 added, 0 deleted, 6 changed)
OCL=32924
CL=32945

src/pkg/archive/tar/reader.go
src/pkg/archive/tar/reader_test.go
src/pkg/archive/tar/testdata/v7.tar

index 7e8f617b001dcbc7e50cd856034394f832d95859..56b840448a786bf67d7f6088c257741647b30719 100644 (file)
@@ -75,7 +75,12 @@ func cString(b []byte) string {
 }
 
 func (tr *Reader) octal(b []byte) int64 {
-       if len(b) > 0 && b[len(b)-1] == ' ' {
+       // Removing leading spaces.
+       for len(b) > 0 && b[0] == ' ' {
+               b = b[1:len(b)];
+       }
+       // Removing trailing NULs and spaces.
+       for len(b) > 0 && (b[len(b)-1] == ' ' || b[len(b)-1] == '\x00') {
                b = b[0:len(b)-1];
        }
        x, err := strconv.Btoui64(cString(b), 8);
index a3a02978a79546cffb62aa25292ebaac21854784..428f73e60b13053ad69e4a8174ac4349342ad701 100644 (file)
@@ -84,20 +84,20 @@ var untarTests = []*untarTest{
                headers: []*Header{
                        &Header{
                                Name: "small.txt",
-                               Mode: 0640,
+                               Mode: 0444,
                                Uid: 73025,
                                Gid: 5000,
                                Size: 5,
-                               Mtime: 1246508266,
+                               Mtime: 1244593104,
                                Typeflag: '\x00',
                        },
                        &Header{
                                Name: "small2.txt",
-                               Mode: 0640,
+                               Mode: 0444,
                                Uid: 73025,
                                Gid: 5000,
                                Size: 11,
-                               Mtime: 1245217492,
+                               Mtime: 1244593104,
                                Typeflag: '\x00',
                        },
                },
index dd33f92ffad5343d19a36f20814c85e935b08008..eb65fc9410721efd98cb7c5e274f547ec530252d 100644 (file)
Binary files a/src/pkg/archive/tar/testdata/v7.tar and b/src/pkg/archive/tar/testdata/v7.tar differ