forked from mirrors/tar-split
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 <bradfitz@golang.org> Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
parent
bf82db1f0d
commit
6e38573de2
2 changed files with 18 additions and 1 deletions
|
@ -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) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue