Commit 669d3da0 authored by David du Colombier's avatar David du Colombier

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/9259Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 98a9d368
...@@ -355,7 +355,7 @@ func paxHeader(msg string) string { ...@@ -355,7 +355,7 @@ func paxHeader(msg string) string {
// hdr.Size bytes are written after WriteHeader. // hdr.Size bytes are written after WriteHeader.
func (tw *Writer) Write(b []byte) (n int, err error) { func (tw *Writer) Write(b []byte) (n int, err error) {
if tw.closed { if tw.closed {
err = ErrWriteTooLong err = ErrWriteAfterClose
return return
} }
overwrite := false overwrite := false
......
...@@ -489,3 +489,20 @@ func TestValidTypeflagWithPAXHeader(t *testing.T) { ...@@ -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)
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment