]> Cypherpunks repositories - gostls13.git/commitdiff
archive/tar: fix error message
authorDavid du Colombier <0intro@gmail.com>
Fri, 24 Apr 2015 13:37:53 +0000 (15:37 +0200)
committerDavid du Colombier <0intro@gmail.com>
Mon, 4 May 2015 21:27:45 +0000 (21:27 +0000)
Write should return ErrWriteAfterClose instead
of ErrWriteTooLong when called after Close.

Change-Id: If5ec4ef924e4c56489e0d426976f7e5fad79be9b
Reviewed-on: https://go-review.googlesource.com/9259
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/archive/tar/writer.go
src/archive/tar/writer_test.go

index dafb2cabf37a8c4194b49ac37f0b65df860ae3c0..9dbc01a2ffbc4b223e0a28cfff3a40dc4817ca19 100644 (file)
@@ -355,7 +355,7 @@ func paxHeader(msg string) string {
 // hdr.Size bytes are written after WriteHeader.
 func (tw *Writer) Write(b []byte) (n int, err error) {
        if tw.closed {
-               err = ErrWriteTooLong
+               err = ErrWriteAfterClose
                return
        }
        overwrite := false
index 5e42e322f9c722f66d730793cfdab18895a25c30..650899a10e85f2e189713a69442a3d52358a1c16 100644 (file)
@@ -489,3 +489,20 @@ func TestValidTypeflagWithPAXHeader(t *testing.T) {
                }
        }
 }
+
+func TestWriteAfterClose(t *testing.T) {
+       var buffer bytes.Buffer
+       tw := NewWriter(&buffer)
+
+       hdr := &Header{
+               Name: "small.txt",
+               Size: 5,
+       }
+       if err := tw.WriteHeader(hdr); err != nil {
+               t.Fatalf("Failed to write header: %s", err)
+       }
+       tw.Close()
+       if _, err := tw.Write([]byte("Kilts")); err != ErrWriteAfterClose {
+               t.Fatalf("Write: got %v; want ErrWriteAfterClose", err)
+       }
+}