From: David du Colombier <0intro@gmail.com> Date: Fri, 24 Apr 2015 13:37:53 +0000 (+0200) Subject: archive/tar: fix error message X-Git-Tag: go1.5beta1~760 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=669d3da000cb9ed40bb6108f24f4ecf8d31d3189;p=gostls13.git archive/tar: fix error message 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 --- diff --git a/src/archive/tar/writer.go b/src/archive/tar/writer.go index dafb2cabf3..9dbc01a2ff 100644 --- a/src/archive/tar/writer.go +++ b/src/archive/tar/writer.go @@ -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 diff --git a/src/archive/tar/writer_test.go b/src/archive/tar/writer_test.go index 5e42e322f9..650899a10e 100644 --- a/src/archive/tar/writer_test.go +++ b/src/archive/tar/writer_test.go @@ -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) + } +}